質問: 特定のコマンドにカスタムオートコンプリートを指定するにはどうすればよいですか? タブをダブルクリックしたときに何を表示するかをbashに正確に知らせる方法はありますか?たとえば、私はpython script 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/にシェルスクリプトを含めることです。このファイルの基本構造は、bashビルトインであるcompleteの完了と呼び出しを実行する単純な関数です。 completeの使用方法について詳しく説明するのではなく、 bash補完の概要 を読むことをお勧めします。パート1では基本を説明し、パート2では補完スクリプトの記述方法を説明します。bash補完のより詳細な説明は、man bashの[programmable completion]セクションにあります(「/ programmable completion」と入力してから、 'n'を数回押すと、そこにすばやく到達できます。または、幸運を感じる、「g 2140 return」)。