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

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

REGEX="^[2][0-2]:[0-5][0-9]$"
TIME="21:30"

if [ $TIME = $REGEX ]; then
    echo "Worked"
else
    echo "Did not work"
fi

:と関係があるようですが、私の場合は、エスケープシーケンスが不要な汎用フラグです。

ベストアンサー1

単純な=正規表現の比較が間違っています。を使用し、=~二重括弧も使用する必要があります。

if [[ $TIME =~ $REGEX ]]; then
  ...

また見なさい:https://stackoverflow.com/questions/17420994/bash-regex-match-string

おすすめ記事