关于expr使用的困惑

时间:2011-06-26 02:17:53

标签: linux bash

expr手册页说:“模式匹配返回在(和)之间匹配的字符串或null;如果未使用if(和),则返回匹配的字符数或0。”

我在做

echo `expr ABCDEF : ABC`

按预期给出3

然而,这也给出3,为什么?

echo `expr \( ABCDEF : ABC \)`

1 个答案:

答案 0 :(得分:1)

那里有两种不同的括号;您使用的是表达式语法的一部分,而您的引用是关于模式中的正则表达式括号。

expr \( ABCDEF : ABC \) # parenthesized expression
expr ABCDEF : \(ABC\) # capturing parentheses in pattern