在sh shell脚本中,我写了以下内容:
opr=+
echo `expr match "$opr" '[+\-x/]'`
但是我在运行时遇到了这个错误:
expr: syntax error
我做错了什么?当我使opr等于 - 和/。
时,我得到了同样的错误我发现的另一个有趣的事情是我写这篇文章时:
opr=a
echo `expr match "$opr" '[+\-x/]'`
它返回:
1
这意味着它将字符串“a”与+, - ,x和/中的一个匹配。但这没有任何意义!
答案 0 :(得分:1)
第一种情况:+
+
对expr有特殊含义:
+ TOKEN
interpret TOKEN as a string, even if it is a
keyword like `match' or an operator like `/'
第二种情况:a
你的正则表达式是一个范围操作,匹配从+
到x
的字符,其中包括大多数alnums。要使-
字面上与charclass匹配,它必须是第一个或最后一个字符;反斜杠它不起作用。