動的bashオートコンプリートを実装する方法

動的bashオートコンプリートを実装する方法

利用可能なプロジェクトを一覧表示するスクリプトを作成しました。あなたはできますスタート入力としてscript start <project>

今すぐオートコンプリートを有効にしておくと良いstart OrganでしょTABstart Organisation

難しい部分は、プロジェクトのリストが動的であることです。利用可能なアイテムのリストは頻繁に変更され、すべてのユーザーが使用できるアイテムが異なります。

私の考えは、利用可能なエントリをjsonファイルに保存し、そのファイルを使用してオートコンプリートを有効にすることです。でファイルを作成する必要があることを知っていますが、/etc/bash_completion.d/利用可能な項目に応じて「動的」オートコンプリートを実装する方法がわかりません。

ベストアンサー1

利用可能なすべての項目を一覧表示するスクリプトがあるとしますoutput_projects。ここでbash関数から呼び出してください。

_list_projects() {
  ./output_projects
}

start次に、次のように例にバインドします。

complete -F __list_projects start

デフォルトでは、bashを押すたびに<tab>関数が実行され、使用可能な項目の新しいリストが表示されます。

テスト対象:

$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)

問題は解決しましたか?そうでない場合は、探している内容を変更して明確に説明してください。

おすすめ記事