~/Special ディレクトリに bash 機能がspecialcat
あるとしましょう。cat
specialcat () {
cat ~/Special/$1
}
~/Special ディレクトリが次のように設定されているとします。
mkdir ~/Special
echo This is the first special file > ~/Special/firstfile
echo This is the second special file > ~/Special/secondfile
Specialcat機能の使い方は次のとおりです。
> specialcat firstfile
This is the first special file
パラメータ補完を有効にしたいです。
> specialcat firstf[TAB]
生産する
> specialcat firstfile
現在の作業ディレクトリが何であるか、どのファイルがあるかは問題ではありません。
これがこれまでの私の試みです
_options_specialcat () {
COMPREPLY=( $(compgen -W "$(ls ~/Special)") )
}
complete -F _options_specialcat specialcat
これにより
> specialcat firstf[TAB]
firstfile secondfile
> specialcat firstf
つまり、一部のファイル名で Tab キーを押すとファイルのリストが表示されますが、コマンドは完了しません。
_options_specialcat
目的の動作を生成するために機能をどのように変更できますか?
答え1
現在のパラメータに基づいてリストをフィルタリングする必要があります。
COMPREPLY=( $(compgen -W "$(ls ~/Special)" -- "$2") )