Bash-Script nach TCSH-Script umwandeln

Sloop

Well-Known Member
Hallo.

Folgendes Skript ist für die Bash gedacht. Könnte das jemand syntaxkonform für die (t)csh übersetzen? ich möchte autocompletion für "befehl" einrichten.

_befehl()
{
local cu prev opts
compreply=()
cur="${comp_words[comp_cword]}"
prev="${comp_words[comp_cword-1]}"
opts=" \
option1 \
option2 \
option3 \
usw \
option99"

COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0

}
complete -F _befehl befehl

so klappt das nicht, wenn ich es in meine csh-config eintrage. Danke im Voraus.
 
Die Manpage hilft da weiter. Im Kapitel 'Competion and listing' kommt der Hinweis auf das builtin complete.
 
Soweit so gut. Ich hab ja auch mehrere completions bereits drinstehen. Aber mit dem oben gezeigten bash script komme ich nicht klar, wie diese Funktion () überhaupt arbeitet und vor allem wie ich das tcsh konform umgestalten muss.
 
Ähm, das Skript ist nur ein Syntaxbeispiel. So weit ich das (flüchtig) überblicke macht es nichts anderes als:
Code:
complete cat 'c,-,(b e n s t u v),'
 
ja schon. Aber in welchem Syntax gehört das in die /etc/csh.cshrc hinein? Das von mir oben gezeigte Beispiel stammt aus einem Beispielskript des Programms "tmux". Ich habe es aus /usr/local/share/examples/tmux/bash_completion_tmux.sh herausgezippt. Ich möchte das nun gerne in meine csh.cshrc einbauen und so wie es dasteht funzt es natürlich nicht.

Falls jemand hier aushelfen kann, bin ich sehr dankbar.
 
Wie man Completions für die tcsh schreibt, ist leider recht schwer zu erklären. Lese dir am besten einmal die Beschreibung des "complete" Kommandos in der tcsh-Manpage durch. Das sollte einiges verdeutlichen.
 
Zurück
Oben