4
自分のファイルシステム用のbash_completionスクリプトを作成します。私はいくつかのDBにクエリを送信するクライアントプログラムを持っています。Bashのカスタムパス補完
例:
my_prog --ls db_name:/foo/bar/
このコマンドはdb_name:/foo/bar
フォルダ内のファイルの標準出力リストに書き込みます。
私はこのために自動補完を有効にしたいと思います。だから私はタブを押すと、オプションのリストが表示されます。
my_prog --ls db_name:/foo/bar/<tab>
が、私は、タブを押して、そこにそれが現在の入力したパスを置き換える1つのオプションがあるので、私はこの取得しています。この場合:
$ my_prog --ls db_name:/foo/bar/<tab>
$ my_prog --ls file
をしかし、私は試合が追加されるようにしたいです入力されたパスの終わり。ここで
は私の補完機能である:
__complete_path()
{
COMPREPLY=()
if [[ ${1} == "" ]]
then
COMPREPLY=("/")
compopt -o nospace
return
fi
base=${1##*/}
dir=${1%/*}
options="my_prog --ls ${db}:${dir}"
COMPREPLY=($(compgen -W "${options}" -- ${base}))
compopt -o nospace
}
「$ {db}」とは何ですか? –