以下带有正则表达式检查的代码不会在 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 之间兼容的代码。
有人知道我的问题是什么吗?
谢谢 !