最近,我用这种regex测试编写了一个脚本:
# Works fine on Sabayon/Mac, doesn't work on CentOS
[[ $line =~ (.+)\{(.+)\} ]] || continue它在Sabayon Linux和Mac上运行很顺利,但是我需要在其他环境下运行它,而脚本失败了。它是CentOS Linux。过了一段时间,我发现我需要避免出现双重反弹,才能让它发挥作用。
# Works fine on CentOS, does not on Sabayon/Mac
[[ $line =~ (.+)\\{(.+)\\} ]] || continue环境清单:
为什么会发生这种事?如何使它在两个环境中运行?
发布于 2014-05-28 12:40:27
可以将表达式存储在变量中,并在测试中使用该表达式:
re="(.+)\{(.+)\}"
[[ $line =~ $re ]] || continue我不认为你真的需要这里的括号。".+\{.+\}"也能工作。
https://stackoverflow.com/questions/23911373
复制相似问题