由于 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 中遇到了这个问题。