当我执行 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。
高血压