二重括弧内のbash否定表現

二重括弧内のbash否定表現

次は数値チェックと一致するため、式をどのように否定できますか?

  elif [[ $pn =~ ^[[:digit:]]+$ ]]; then
    pfm -w "pn failed numeric inspection"

答え1

否定的なテストが利用可能

[[ ! $pn =~ ^[[:digit:]]+$ ]]

またはこの場合

[ -z "$pn" ] || [[ $pn =~ [^[:digit:]] ]]

つまり、「$pn空白または数字以外のコンテンツが含まれていますか?」

またはワイルドカードテスト

[ -z "$pn" ] || [[ $pn == *[![:digit:]]* ]]

または、拡張されたワイルドカードパターンを使用してください。

[[ $pn != +([[:digit:]]) ]]

関連情報