検索の時間がたってから、私は最初のstackoverflowの質問を書いた。オートコンプリート・ブースト・プログラムのオプション
これまでのところ、bashスクリプトの補完機能を作成したいと思っています;)。 このbashスクリプトは、独自のオートコンプリートを持つ他の実行可能ファイルを呼び出します。
例:
$ my_script foo par
# calls /usr/local/libexec/my_script/foo par
(この場合は "foo" という)my_scriptというの最初のパラメータをオートコンプリート機能し、可能なオプションは、フォルダ内のファイルであるため、 "は/ usr/local/libexecに/ my_scriptという/" 。 このフォルダ内の各プログラムは、boost :: program_optionsを使用して副産物として動作する自動補完機能を持っています。
ここで、呼び出すプログラムの自動完了を参照して、my_scriptの次のパラメータの自動補完を実装したいと考えています。
$ my_script foo <tab>
# should output possible options to the foo subcommand
# like /usr/local/libexec/my_script/foo <tab>
私はこの答えBash completion from another completionによって始めましたが、_commandまたは_command_offset 1が私のために動作するようには思えません。
- どのように私はFOOのオプションを取得することができ、私はmy_scriptという中でこれを使用することができますか?
私の現在の/etc/bash_completion.d/my_scriptは、以下の
_my_script()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
if [[ "$COMP_CWORD" == 1 ]]; then
# 1. param: for program to be loaded
for i in $(ls /usr/local/libexec/my_script/); do
opts="${opts} ${i} "
done
COMPREPLY=($(compgen -W "${opts}" ${cur}))
else
# next param: of the program to be loaded
# how do I get the options of "foo" here?
fi
return 0
}
complete -F _my_script my_script