Bash 变量自动补全功能在末尾添加了额外的空格

Bash 变量自动补全功能在末尾添加了额外的空格

当我执行 bash 变量的自动完成时,末尾会添加一个额外的空格字符。

所以这:

$FO[TAB]

变成这样:

$FOO" " 

我添加了引号来表示空格。问题是我们使用的某些变量是目录,空格很烦人,因为必须将其删除并输入 /。是否可以以某种方式配置这样的行为

所以这:

$FO[TAB]

变成这样:

$FOO/

或这个:

cd $FO[TAB]

变成这样:

cd $FOO/

答案1

迟回答总比不回答好!

变量中方便的目录名补全功能已在 Bash 4.3 中实现。Bash 4.3 检查 shell 变量是否扩展为目录名并/根据需要附加到单词中。

答案2

我在 CentOS 7 上使用 bash 4.2 时遇到了同样的问题。我在网上找不到任何解决方案/解决方法。“yum upgrade bash”也无济于事。

最后我决定编译/安装最新的 bash 版本(当时是 4.4)。我只是按照这个博客操作:如何在 Linux 发行版上安装 Bash 4.4

Tab 补全在 4.4 中按预期工作。这似乎是 4.2 中的一个错误。

请注意:在“make install”之后,可执行文件位于 /usr/local/bin/(/bin/bash 保持不变),因此您需要调整 /etc/passwd 以使新版本成为用户的默认登录 shell。

高血压

相关内容