在bash中,环境变量在放置在echo命令后会正确展开,例如:

echo $HOME

但是在cd或cat之后,bash在$符号之前放置一个\,就像这样:

cd \$HOME

如果我使用变量作为命令的第二个参数,它根本不会扩展:

cp somefile $HOM

我的.bashrc或.inputrc文件中有什么神秘的选项会导致我这么痛苦?

有帮助吗?

解决方案

尝试 complete -r cd ,删除许多Linux发行版为 cd 命令安装的特殊编程完成功能。该函数将查找CDPATH变量中指定的目录列表添加到 cd 的选项卡完成中,但代价是违反了默认的完成行为。

请参阅 http://www.gnu.org/ software / bash / manual / bashref.html#Programmable-Completion 获取更多详细信息。

其他提示

您所描述的是“特征”。 在bash 4.2中介绍。所以你没有任何神秘的选择让你感到痛苦,但只是“打算”。行为。

我发现这非常烦人,因为我以前的方式喜欢它,并且还没有找到任何配置选项来恢复之前的行为。使用其他答案建议的完整选项并没有让我随时随地。

对于第二个实例,您可以在选项卡前按ESC键来解决它。

我不知道您的问题的解决方案,但您可以查看 / etc / bash_completion /etc/bash_completion.d 下的文件来确定命令使用自动完成以及如何使用。

help complete

也可能会有帮助。

Bash参考手册提供的信息比您想要的更多关于扩展勘误表。

第8.7节看起来像它将是开始的地方。它提供了有关“完整”功能的信息,等等。

我正在回答4岁的问题!奇妙!

这是一个bash bug / feature,它是在v4.2中无意中引入的,并且很长一段时间没有被注意到。 geirha在这一步骤中指出了这一点。被确认为非预期功能此处

我在家里运行Ubuntu时遇到了这个问题。在工作中我有bash-3.00,所以我花了一些时间浏览看看发生了什么。我想知道我是否可以'降级'....

检查答案 https://superuser.com/questions/434139/urxvt-tab-expand-environment-variables 作者:Dmitry Alexandrov:

  

这是关于direxpand选项。 TAB将扩展 $ shopt -s direxpand $ FOO_PATH /

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top