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
参考