Answers:
ARGS="-a -b -c"
grep -- "$ARGS"
grep -- "--name awesome"
。
如http://tldp.org/LDP/abs/html/special-chars.html#DASHREF所述,破折号是Bash中的特殊字符。。因此,一次转义就可以使您摆脱Bash的困扰,但是Grep仍然具有破折号的含义(通过提供选项)。
因此,您确实需要对其进行两次转义(如果您不想使用其他提到的答案)。以下将/应该工作
grep \\-X
grep '\-X'
grep "\-X"
尝试Bash如何将参数传递给脚本/程序的一种方法是创建一个仅回显所有参数的.sh脚本。我不时使用名为echo-args.sh的脚本进行播放,它包含的所有内容是:
echo $*
我将其调用为:
bash echo-args.sh \-X
bash echo-args.sh \\-X
bash echo-args.sh "\-X"
你明白了。
grep -e -X
会成功的
-P
(但这是另一个故事,在这里不适用))。
grep“ ^-X”文件
它将grep并选择文件中的所有行。grep中的^“ ^”表示以
-
。
--
意味着什么或做什么的人:unix.stackexchange.com/questions/11376/…–含糊不清的