为了使$ a与$ b匹配,我编写了以下命令,但是当值包含“-”时,我得到一个错误。我该如何避免呢?
# a="-Xmx5324m"
# b="-Xmx5324m"
#
#
# echo "$a" | grep -Fxc "$b"
grep: conflicting matchers specified
顺便说一句,您是否真的要进行正则表达式匹配,还是只想测试一个字符串是否等于另一个字符串(或该字符串的子字符串)?在那种情况下,shell内置
—
Uwe
[[ ... ]]
或case
将是一个更好的选择,因为您既避免了的特殊性echo
又避免了子进程。
字符串是否相等,这是我的测试
—
yael
另一个您不应该使用没有列出的人的替代方法:可以将带引号的破折号转义,因此可以将其理解
—
亚伦
grep
为文字字符而不是选项的开始,即echo test-test | grep "\-test"
匹配而不是抱怨未知-t
标志。
grep -Fxc -- "$b" <<< "$a"
避免不必要的管道