bash 选项卡补全在 >& 重定向中不起作用

bash 选项卡补全在 >& 重定向中不起作用

当我在命令之后的参数上使用制表符完成时,ls它可以工作,但是当我在某些脚本参数之后使用它时(请参见下面的第二个示例),它不起作用。我已经检查过选项卡补全已启用。如何使所有命令都运行制表符补全?

screen注意:如果重要的话,我会在会话中(在 Ubuntu 上)运行它。

user$ echo $SHELL
/bin/bash
user$ grep completion ~/.bashrc
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
user$ 
user$ ls test[TAB]
test.log1                                               
test.log2                                                
test.log4                                              
test.log5                                              

user$ ./script.sh >& test[TAB]  <-- "no output"

Bash 版本:GNU bash,版本 4.3.11(1)-release (x86_64-pc-linux-gnu)

答案1

尝试等效的:

$ ./script.sh &> test[TAB]

&>是将 stdout 和 stderr 重定向到文件的首选语法。

制表符补全将 ( >&) 视为其他语法,并且不显示文件。

相关内容