bash 補完を取得するにはどうすればいいですか?

bash 補完を取得するにはどうすればいいですか?

bash でコマンドのすべての可能な補完リスト (コマンドを入力して Tab キーを押した場合に表示されるもの) を (たとえば stdout に) 印刷する良い方法はありますか?

編集: もう一度読んでみると、これはあまり明確ではなかったようです。補完を手動で取得する方法はわかっています。プログラムで実行したいと思います。

答え1

bash にはまさにそれを実行する機能はありません。プログラム可能な補完は、カーソルの位置などのさまざまなパラメータに大きく依存します...

eval $(complete -p 'git' | sed s/^complete/compgen/)

思われる動作しますが、非常に壊れやすいです。

答え2

2 回押しますTAB。ほとんどの BASH 系シェルでは、指定された部分文字列に一致するすべての自動補完オプションが一覧表示されます。

例えば

root@host$apt-get up

TABこのコマンドを2回押すと、両方が表示されますUpdateUpgrade

答え3

パッケージがインストールされていることを確認してくださいbash-completion。インストールの種類によっては、デフォルトで含まれている場合と含まれていない場合があります。含まれていない場合は、yumまたはを使用して取得してください。aptインストール後、ログアウトして再度ログインするか、 を再リソースして.bashrc使用する必要があります。

@Amazed の使い方はまさにその通りです。

答え4

基本的に、あなたが求めているのは、特定の文字列で始まるすべてのコマンドのリストだと思います。システム上のすべての実行可能ファイルのリストを取得し、それらを grep で実行することで、それができるはずです。

関連情報