Bash完成编程,'@'总是在完成字符串中删除

时间:2011-03-27 12:03:02

标签: linux bash gentoo

我正在为Gentoo做一个bash完成,它搜索包,设置(portage 2.2新功能),但是当我使用以下命令时遇到了问题:

  

emerge @pres

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

  

emerge pres

首先想到的是我的脚本名为“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剥离? 非常感谢!

1 个答案:

答案 0 :(得分:1)

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

所以引用:

emerge '@pres'

或逃避:

emerge \@pres