为什么在bash中反斜杠?

时间:2012-10-09 04:13:04

标签: bash ubuntu bash-completion

我在〜/ .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.

1 个答案:

答案 0 :(得分:3)

Bash有点聪明,但不那么聪明。它无法扩展您的变量,然后标签完成到任何评估的目录。所以这不是反斜杠“禁用”标签的完成,而是bash无法找到任何完成建议。

如果您的路径中确实有环境变量,那么完成不会对您有所帮助,完成的唯一方法就是帮助您,如果您打算键入一个文字美元符号。我认为bash只是在试图完成某事时过于热心。

不过,我称之为一个错误,因为在你的情况下,它不仅无法完成,而且还会改变你输入内容的含义。