問題タブ [completion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - この bash 補完機能はどのように機能しますか? (cloudfoundry cli の場合)
この bash 補完機能を理解しようとしていますか? (cloudfoundry cli の場合)
https://debian-administration.org/article/317/An_introduction_to_bash_completion_part_2とhttps://www.gnu.org/software/bash/manual/bash.html#Programmable-Completion
の bash ref ガイドを読み まし
たが、理解できますcloudfoundry のスクリプト内のコードがどのように機能するかを説明します: (からコピー/usr/local/etc/bash_completion.d/cf
)
いくつかのプラグインを cf にインストールしましたが、それらを完成させたいと思っています。(例: github.com cf-targets-plugin
)
ヒントはありますか?単語リストはどのように生成されますか? (私はその中にあると仮定しますCOMP_WORDS[]
)
これは、次のようなサンプルとは大きく異なります
COMPREPLY=( $(compgen -W "$worldist -- "$cur_opt") )
bash - たまたま同じ名前を共有している別々のコマンドに対して、別々の bash 補完関数を持つことは可能ですか?
異なるプロジェクト用に、異なるパスに同じファイル名の 2 つの別々のスクリプトがあります:
/home/me/projects/alpha/bin/hithere
と/home/me/projects/beta/bin/hithere
.
これに対応して、スクリプトごとに適切な補完が異なるため、2 つの別個の bash 補完スクリプトを用意しています。補完スクリプトでは、問題のスクリプトの完全な名前を指定して、補完ごとに「complete」コマンドが実行されます。
complete -F _alpha_hithere_completion /home/me/projects/alpha/bin/hithere
ただし、呼び出された実際のバージョンに関係なく、最後に実行されたスクリプトのみが効果があるhithere
ようです。bash の補完は、コマンドのファイル名のみを考慮し、パス情報を無視しているようです。
この動作を変更して、これら 2 つの独立したスクリプトを同じ名前で、それぞれ異なる補完関数を持つようにする方法はありますか?
アルファがベータについて知ることを必要とするソリューション、またはそれらのいずれかを知るために 3 番目のコンポーネントを必要とするソリューションには興味がないことに注意してください。