forループのタブ補完が機能しません。

forループのタブ補完が機能しません。

実行可能コマンドのタブ補完は、bashの対話型forループでは機能しません。私はそれがうまくいったと誓うことができましたが、それが決して行われなかったという考えに開いていたので、自分自身を狂わせていました。ループではなく、通常のコマンドラインでうまく動作します。 ^Cingは、名前をコピーして貼り付けるためにループを作成せずに名前を完成させます(実際に私のコマンド名は、以下の例で使用する「whatis」ほど単純ではありません)。

例:

$ which whatis
/usr/bin/whatis
$ wh<TAB>(BEEP)<TAB>
whatis    whereis   while     who
wheel     which     whiptail  whoami
$ what<TAB>is
usage: whatis keyword ...
$ for i in foo bar ray
> do
> what<TAB>(BEEP)<TAB>(BEEP)

環境は次のとおりです。

$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

ベストアンサー1

その後、回答として投稿することをお勧めします。可能な回避策としてループを破ることを避け、すべてを同じ行に保つことです。

for i in foo bar ray; do what<TAB>

what上記を使用すると、期待どおりに実行できます。

おすすめ記事