web-dev-qa-db-ja.com

コマンドラインツールにはどのように独自のオートコンプリートリストがありますか?

UbuntuのBashは、ツール固有のアクションリストをどのようにして知っていますか?

たとえば、apt-getとタブを2回入力すると、削除、更新、アップグレードなどが表示されますが、別のコマンドのアクションや現在のディレクトリ内のファイルは表示されません。

Goでコマンドラインツールを開発しています。この機能をサポートするディストリビューションにこの機能を提供したいと考えています。

24
Amged Rustom

これは、bash v4の補完機能を使用して行われます。 apt-getの完了コードはbash-completionパッケージによって提供され、/usr/share/bash-completion/completions/apt-getにあります。補完があり、基本bash-completionパッケージに含まれていないアプリケーションは、補完スクリプトを/etc/bash_completion.dに配置します。

補完はソーシング/etc/bash_completionを介して読み込まれます。これが行われる正確な場所は、DebianまたはUbuntuのバージョンによって異なります。これにより、/usr/share/bash-completion/completionsおよび/etc/bash_completion.dのすべてがソースになります。

25
jordanm