在bash中,环境变量没有正确扩展选项卡
-
01-07-2019 - |
题
在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
也可能会有帮助。
检查答案 https://superuser.com/questions/434139/urxvt-tab-expand-environment-variables 作者:Dmitry Alexandrov:
这是关于direxpand选项。 TAB将扩展
$ shopt -s direxpand
和$ FOO_PATH /
。