1つのスクリプトオプション(-seq)に対してのみ別のディレクトリのファイルを一覧表示するようにbashオートコンプリートをカスタマイズする方法、別のスクリプトオプション(-speed、-define)の場合、デフォルトのオートコンプリートは問題ありません。これが私が持っているものです。
export files=`ls /home/tests/`
echo $files #debug
_xtest () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
#case "$cur" in
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) )
# esac
return 0
}
complete -F _xtest -o filenames xtest
追加オプションに対してデフォルトのbash補完を有効にするには?
答え1
curの代わりにPrevを使用する必要があります。
_xtest () {
local prev
COMPREPLY=()
prev=${COMP_WORDS[COMP_CWORD-1]}
case "$prev" in
-seq )
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) ) ;;
esac
return 0
}
complete -F _xtest -o filenames xtest