在bash中,环境变量没有正确扩展选项卡

Her*_*rge 15 unix bash keyboard-shortcuts

在bash中,环境变量在放置echo命令后会正确显示选项卡,例如:

echo $HOME
Run Code Online (Sandbox Code Playgroud)

但是在cd或cat之后,bash会在$符号前放置\,如下所示:

cd \$HOME
Run Code Online (Sandbox Code Playgroud)

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

cp somefile $HOM
Run Code Online (Sandbox Code Playgroud)

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

kyn*_*nan 5

你所描述的是bash 4.2中引入的"特性" .所以你没有任何神秘的选择让你感到苦恼,而只是"有意"的行为.

我发现这非常烦人,因为我喜欢它以前的方式,并且还没有找到任何配置选项来恢复之前的行为.complete按照其他答案的建议玩选项并没有让我感到随心所欲.

  • 这是正确的答案; 关于自动完成的东西正在修复一个症状,而不是原因.一个"direxpand"shopt正在解决这个问题. (4认同)

bd8*_*808 4

尝试使用complete -r cd删除许多Linux 发行版为该cd命令安装的特殊编程完成功能。该函数将搜索 CDPATH 变量中指定的目录列表添加到 Tab 补全中cd,但代价是破坏默认补全行为。

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