Bash 选项卡在命令替换 $(...) 中使用非第一个标记完成会引发错误

Bash 选项卡在命令替换 $(...) 中使用非第一个标记完成会引发错误

对第一个命令使用制表符补全$(...)

cat $(w

当我击球时,tab我会像往常一样获得潜在的完成机会。

$ cat $(w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

然而,在非第一位置 bash 显示一个奇怪的错误

$ cat $(which w

节目

$ cat $(which w-bash: unexpected EOF while looking for matching `)'
-bash: syntax error: unexpected end of file

sh命令替换语法显示第一个位置的相同预期行为,但不显示后续位置

$ cat `w
w                   wc                  which               wicd-client         wofm2opl            wpa_supplicant

$ cat `which w

根本没有自动补全功能。

答案1

很明显,它正在寻找一个结束符),之后你不能点击 tab cat $(which w ,因为w必须由你自己完成,通过输入一些参数名称,我猜 bash 补全不是为了参数补全。这是为了命令完成。

安装此 bash 完成后尝试此行为,这可能会为您完成大部分事情。

    yum install bash-completion 
    source /etc/bash_completion 

相关内容