我在〜/ .bashrc中导出了一个变量,如下所示(后跟source~ / .bashrc)
export w=/home/user/workspace/
当我在命令行上时,我尝试以下列方式访问$ w的子目录
user$ vi $w/
此后,当我按Tab键时,会出现一个神秘的反斜杠
user$ vi \$w/
禁用进一步的制表符完成功能。为什么?即使使用vi
,也可能不会ls
具体。
Bash版本4.2.24(1)-release(i686-pc-linux-gnu) 运行Ubuntu 11.04
修改 Workaround:在点击标签前点击Esc + Ctrl + E.
答案 0 :(得分:3)
Bash有点聪明,但不那么聪明。它无法扩展您的变量,然后标签完成到任何评估的目录。所以这不是反斜杠“禁用”标签的完成,而是bash无法找到任何完成建议。
如果您的路径中确实有环境变量,那么完成不会对您有所帮助,完成的唯一方法就是帮助您,如果您打算键入一个文字美元符号。我认为bash只是在试图完成某事时过于热心。
不过,我称之为一个错误,因为在你的情况下,它不仅无法完成,而且还会改变你输入内容的含义。