exprコマンドを使う方法
target='aa bbcc' # 正規表現をクォートする。 # 変数展開時はワード分割を避けるためにクォートする。 if expr "${target}" : "^a\+ [b-c]\{4\}$" > /dev/null; then echo "match" fi # 正規表現にマッチしない条件分岐をするには!を使う。 if ! expr "${target}" : "^a\+ [b-c]\{3\}$" > /dev/null; then echo "mismatch" fi
[[ ]]
構文を使う方法(bash、zshなど)
target='aa bbcc' # bash: 正規表現をクォートしない。 # zsh: 正規表現をクォートする。 # 変数展開時のクォートは不要。 if [[ ${target} =~ ^a+' '[b-c]{4}$ ]]; then echo "match" fi # 正規表現にマッチしない条件分岐をするには!を使う。 if [[ ! ${target} =~ ^a+' '[b-c]{4}$ ]]; then echo "mismatch" fi