Bash 无法在没有反斜杠的情况下完成系统变量的制表符

Bash 无法在没有反斜杠的情况下完成系统变量的制表符,bash,tab-completion,Bash,Tab Completion,我的输入是空的。我使用Bash 问题: 我在 我按Tab键,我得到 cd \$test 在Bash中,如果没有反斜杠,如何完成制表符?您没有。在Bash中,$用于检索变量。例如: SWEETVAR='hi' echo $SWEETVAR 因此,文件或文件夹名称中的$必须转义,否则将被解释为变量。问题似乎出在MacPorts中 它有一个旧版本的Bash_completion 最新版本中包含以下内容: complete -o nospace -F _cd cd 而我在执行命令后有以下内容 $c

我的输入是空的。我使用Bash

问题: 我在

我按Tab键,我得到

cd \$test

在Bash中,如果没有反斜杠,如何完成制表符?您没有。在Bash中,$用于检索变量。例如:

SWEETVAR='hi'
echo $SWEETVAR

因此,文件或文件夹名称中的$必须转义,否则将被解释为变量。

问题似乎出在MacPorts中

它有一个旧版本的Bash_completion

最新版本中包含以下内容:

complete -o nospace -F _cd cd
而我在执行命令后有以下内容

$complete | grep cd
complete -o filenames -o nospace -F _cd cd
我向MacPorts的irc发送了一条评论,以更新bash completion@20060301(sysutils)。

我终于转到了Zsh。
它为我解决了问题。

您是否在当前目录中有一个名为“$test”的文件?我看不到任何可以称为“flash”(在任何方向)的文件。你能详细说明一下吗?@马可:啊。有道理,我认为里克赢了…@Allyn:你怎么能在Bash中用一个var而不是一个系统var,这样你就不需要反斜杠来转义了。你的意思显然是用一个var和一个别名。
$complete | grep cd
complete -o filenames -o nospace -F _cd cd