如何防止终端自动完成功能转义 $ 符号

如何防止终端自动完成功能转义 $ 符号

在 10.04 终端中,我可以输入命令:cat $MYDIR/a,然后按 Tab 键,自动完成功能会将其扩展为:cat /home/me/abc.txt

(我已经在.bashrc中定义了MYDIR)

在 12.04 中,它自动完成为:cat \$MYDIR/abc.txt 并给出无此文件错误

我怎样才能获得这方面的 10.04 行为?

答案1

这个比较复杂。其实这并不是一个 bug,而是一个功能的意外后果:参见此讨论

但没错,这就是 bash 4.2 的行为,许多人抱怨这是一个错误。解决方案是将 bash 降级到 4.1 版本,或将其升级到 4.2.29,其中这个错误已被解决。

描述了一个临时解决方案这里

shopt -s cdable_vars
complete -v -F _cd $nospace $filenames cd

相关内容