bashで正規表現を使用して大文字と小文字を一致させる方法は?

bashで正規表現を使用して大文字と小文字を一致させる方法は?

次の変数を設定します

status=ok
echo $status
ok

今、正規表現の変数が一致することを確認したいと思います。

次のように

[[ $status =~ [OK]  ]] && echo "is the same"
[[ $status =~ OK  ]] && echo "is the same"
[[ $status =~ "OK"  ]] && echo "is the same"

しかし、上記のいずれも「同じ」と印刷されません。

私の正規表現にはどんな問題がありますか?

ベストアンサー1

[OK]角かっこ内のすべての文字と一致しますが、角かっこは大文字と小文字を区別しないという意味ではありません。

次のことができます。

[[ "$status" =~ ^[Oo][Kk]$ ]]

または、次のようにすることもできます。

[[ "${status,,}" == ok ]]

引数拡散演算子は、,,比較目的で変数全体を小文字に変換します。

おすすめ記事