bash+正規表現+システム名の確認[閉じる]

bash+正規表現+システム名の確認[閉じる]

次のホスト名をbash正規表現と一致させるには?

私のLinuxホスト名はstar01、star02、star03、start04です。

私の目標は、2番目の数字で文字列 "start0"をチェックすることです。

私は次のことを行います。

 [[ $hostname =~ star0[:digit:]  ]] && echo ok

しかし、これはうまくいきません。

hostname=star04
[[ $hostname =~ star0[:digit:]  ]] && echo ok

ここで何の問題がありますか?

ベストアンサー1

Posix文字クラスは次のように指定する必要があります[[:digit:]]

[[ $hostname =~ star0[[:digit:]] ]] && echo ok

単純化する別の方法は次のとおりです。

[[ $hostname =~ star0[0-9] ]] && echo ok

[:digit:]POSIX角かっこ式内で使用される文字クラス(例[x-z[:digit:]]:)POSIX文字クラス名はすべて小文字でなければなりません。

おすすめ記事