【发布时间】:2016-11-11 02:57:34
【问题描述】:
以下带有正则表达式检查的代码不会在 bash 3 和 bash 4 之间输出相同的结果:
TESTCASE="testcase0"
[[ ${TESTCASE} =~ "^testcase[0-9\.]*$" ]]
echo $?
echo ${BASH_REMATCH}
bash 3.2 输出一个成功的正则表达式检查:
0
testcase0
bash 4.1 正则表达式检查失败:
1
<empty line>
我无法确定表达式在我的正则表达式模式中的哪个位置失败。我需要两个版本的 bash 之间兼容的代码。
有人知道我的问题是什么吗?
谢谢!
【问题讨论】:
-
3.2on mine 输出 1 有一个空行...不管你不应该引用正则表达式。 -
我在 redhat 机器上。
标签: regex linux bash shell bash4