2

我正在为 Gentoo 进行 bash 补全,它搜索包、集(portage 2.2 新功能),但是当我使用以下命令时遇到了问题:

出现@pres

我应该得到 @preserved-libs ,但 bash 把它变成:

出现新闻

首先想到的是我的名为“emerge-finder.pl”的脚本有问题,所以我仔细检查了,这个脚本给出了正确的输出。

接下来我检查了 bash 脚本:

_portage_cmd () {
        COMPREPLY=( `~/scripts/emerge-finder.pl ${COMP_WORDS[COMP_CWORD]}` )

}
complete -F _portage_cmd em

我在 COMPREPLY 行之前放了一个“echo ${COMP_WORDS[COMP_CWORD]}”,并且没有输出“@”字符,有线。

我怎样才能防止我的“@”被 bash 剥离?非常感谢 !

4

1 回答 1

1

引用或转义它可能会有所帮助......

所以引用:

emerge '@pres'

或逃避:

emerge \@pres
于 2011-03-27T12:06:18.113 回答