Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在bash中使用反斜杠?_Bash_Ubuntu_Bash Completion - Fatal编程技术网

为什么在bash中使用反斜杠?

为什么在bash中使用反斜杠?,bash,ubuntu,bash-completion,Bash,Ubuntu,Bash Completion,我在~/.bashrc中导出了一个变量,如下所示(后跟source~/.bashrc) 当我在命令行上时,我尝试以以下方式访问$w的子目录 user$ vi $w/ 之后,当我点击tab键时,一个神秘的反斜杠出现了 user$ vi \$w/ 它将禁用进一步的制表符完成。为什么?可能不是vi特定的,因为即使使用ls Bash版本4.2.24(1)-发行版(i686 pc linux gnu) 运行Ubuntu 11.04 编辑 :点击Esc+Ctrl+E再点击tab Bash有点聪明,但没那

我在~/.bashrc中导出了一个变量,如下所示(后跟source~/.bashrc)

当我在命令行上时,我尝试以以下方式访问$w的子目录

user$ vi $w/
之后,当我点击tab键时,一个神秘的反斜杠出现了

user$ vi \$w/
它将禁用进一步的制表符完成。为什么?可能不是
vi
特定的,因为即使使用
ls

Bash版本4.2.24(1)-发行版(i686 pc linux gnu) 运行Ubuntu 11.04

编辑
:点击Esc+Ctrl+E再点击tab

Bash有点聪明,但没那么聪明。它将无法展开变量,然后将tab complete扩展到计算结果为的任何目录。所以这不是反斜杠“禁用”选项卡完成,而是bash找不到任何完成建议

如果路径中确实存在环境变量,那么补全将不会对您有所帮助,那么补全可以帮助您的唯一方法就是键入一个字面美元符号。我认为bash只是过于热衷于完成某件事


尽管如此,我还是称之为bug,因为在您的情况下,它不仅无法完成,而且还改变了您键入内容的含义。

可能是您发行版的完成包中的bug。如果您指出哪个Bash版本和Linux发行版版本会有所帮助。我在Ubuntu 12.04 w/Bash 4.2.24和Bash completion 1:1.3-1ubuntu8上遇到过这种情况。@tripleee为问题添加了详细信息。发现了重复项:并非完全偏离主题,而是复制到另一个SE站点(请参阅@user13107的评论)
user$ vi \$w/