Ich versuche, die automatische Vervollständigung für einen Befehl einzurichten, der nur einen Parameter, einen Ordnernamen, akzeptiert.
In habe /secure/kernel_builds/ich die drei folgenden Unterordner:
3.5.6/ 3.6.2/ source/
Jetzt möchte ich die automatische Vervollständigung, die alle möglichen Unterordnernamen auflistet, aber nicht den genannten source. Im Moment verwende ich eine ziemlich dumme Methode, um zu überprüfen, ob das Vervollständigungswort mit einer Zahl begonnen wird.
_avail_kernel_builds()
{
case $COMP_CWORD in
1)
if [[ "${COMP_WORDS[COMP_CWORD]}" =~ ^[0-9] ]];then
COMPREPLY=( /secure/kernel_builds/"${COMP_WORDS[COMP_CWORD]}"* )
else
COMPREPLY=( /secure/kernel_builds/"${COMP_WORDS[COMP_CWORD]}"[0-9]*/ )
fi
COMPREPLY=( "${COMPREPLY[@]#/secure/kernel_builds/}" )
COMPREPLY=( "${COMPREPLY[@]%/}" )
;;
esac
}
Gibt es einen besseren Weg, dies zu tun?