可执行命令的制表符补全在 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
按预期完成。