3

正規表現チェックを含む次のコードは、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 間で互換性のあるコードが必要です。

誰かが私の問題についての手がかりを持っていますか?

ありがとう !

4

1 に答える 1