bashのケースステートメントで正規表現の一致が機能するのに問題があります。
サンプルコード:
#!/bin/bash
str=' word1 word2'
echo "With grep:"
echo "$str" |grep '^\s*\<word1\>'
echo "With case:"
case "$str" in
'^\s*\<word1\>') echo "$str" ;;
esac
この例はgrepでは機能しますが、大文字と小文字は機能しません。いくつかの単純な正規表現は大文字と小文字で動作するので混乱します。 Caseは正規表現に異なる構文を使用しますか?私は仕事を正しく避けることができませんか?
答え1
case
これは正規表現を使うのではなく bash を使うからです。パス名拡張。 bashのマニュアルページまたは以下から読むことができます。バッシュリファレンスマニュアル。