更新后 bash 自动完成行为异常

更新后 bash 自动完成行为异常

由于 bash 最近刚刚更新,当我尝试在 cd 期间通过制表键自动完成时,我得到了以下信息...

tony@tony-HP:~$ cd Mucword=1
words[0]=${!ref}${COMP_WORDS[i]}
words[1]=${!ref}${COMP_WORDS[i]}
cword=1
words=("${@:3:2}")
cword="$3"
cur="$3"
cur="$3"
cword="$3"
prev="$3"
words=("${@:3:2}")
 compgen -d -- "$quoted" 
sic/

在这里,我在提示符下输入cd Mu并按 Tab 键,然后 bash 吐出我不需要的信息,sic/并在识别我的音乐目录后添加。有什么变化?是否有一个设置因安全问题而被默认?

ps 按回车键将按照您预期的方式改变目录。

答案1

我知道这个问题有点老了,但如果有人遇到同样的问题,我会回答。这可以通过在终端中输入“bash +v”来解决。您可能输入了“bash -v”试图查看 bash 版本(就像我一样),但这却做了其他事情。PS 要查看 bash 版本,请使用“bash --version”

答案2

好吧,这个答案现在也有点过时了。然而,它帮助了我,但也是错误的。话虽如此,它还是让我找到了解决方案,所以谢谢你,Babis。

运行 bash +v 会在旧 shell 之上启动一个新 shell。

如果你想修改当前 shell 的行为,请使用“set”命令:

set +v

这告诉 bash 在读取输入行时关闭打印输入行,在这种情况下,源是 bash 完成函数。

有趣的是,我在 cygwin 中遇到了这个问题。

相关内容