expr中的冒号运算符有什么作用?

时间:2013-03-28 06:38:29

标签: shell syntax pattern-matching matching colon

抱歉无知......

我正在看一个有人写过的shell脚本,他们写了这个:

expr "$myvariable" : '0*$'

我不知道这意味着什么。

1 个答案:

答案 0 :(得分:4)

冒号:在expr中是匹配的运算符。左侧的字符串是针对右侧的正则表达式进行测试的。无论匹配都被正则表达式组捕获()。正则表达式替换为字符数,然后:行为类似于数组索引操作 - 从该位置向前获取左侧字符串(如Python中的somestring [n:])

'0 * $'匹配零,任何东西,行尾。我不知道myvariable中有什么,但我想没有烟火,除非它的值以零字符开头。

http://docstore.mik.ua/orelly/unix3/upt/ch36_23.htm(来自O'Reilly Unix Power Tools)中解释了一个类似的shell脚本行示例 - 除了将结果赋值给变量和不同的特定字符串外

另见http://pubs.opengroup.org/onlinepubs/7908799/xcu/expr.html大约一半