GNU/Linux >> Linux の 問題 >  >> Linux

特定のコマンドにカスタムオートコンプリートを指定するにはどうすればよいですか?

ダブルタブしたときに何を表示するかをbashに正確に知らせる方法はありますか?たとえば、Pythonスクリプトscpyがあります これにはいくつかの引数が必要です。たとえば、apt-getのように 、ダブルタブを使用すると

autoclean        build-dep        clean            dselect-upgrade  purge            source           upgrade
autoremove       check            dist-upgrade     install          remove           update  

あなた自身のスクリプト/プログラムのためにそれをする方法はありますか? Pythonスクリプトをbashスクリプトでラップする必要がありますか?

承認された回答:

これを行う最も簡単な方法は、/etc/bash_completion.d/にシェルスクリプトを含めることです。 。このファイルの基本構造は、completeの完了と呼び出しを実行する単純な関数です。 これはbashビルトインです。 completeの使用方法について詳しく説明するのではなく 、BashCompletionの概要を読むことをお勧めします。パート1では基本を説明し、パート2では完了スクリプトの作成方法について説明します。

bashの完了についてのより詳細な説明は、man bashの「ProgrammableCompletion」セクションにあります。 (「/ ProgrammableCompletion」と入力してから「n」を数回押すと、すぐにアクセスできます。運が良ければ、「g 2140RETURN」と入力してください)。


Linux
  1. LinuxでBashの履歴から特定のコマンドをクリアする方法

  2. cronシェルを変更する方法(shからBash)?

  3. Linux で特定のユーザーに対して特定のコマンドを無効にする方法

  1. Linux では、bash コマンドではなく C 関数のマニュアル ページを取得するにはどうすればよいですか?

  2. Unix/Linux でカスタム コマンドを作成するには?

  3. bash スクリプトで unicode を grep する方法

  1. Bash履歴コマンドの使用方法

  2. LinuxのbashコマンドをPERLスクリプトで実行する方法は?

  3. bash または ksh で 1 ミリ秒間スリープする方法