0または正の整数テスト

0または正の整数テスト

bashスクリプトの数が0(0)か正の整数であるかをテストする方法は?

ベストアンサー1

一般的なイディオムは、変数の値が数値でのみ構成されていることを確認することです。最新のbashシェルでは=~正規表現を使用できます。

zero_or_positive_integer(){
    for i in "$@"; do
        if [[ "$i" =~ ^[0-9]+$ ]]; then
            echo "YES $i is either 0 or a positive integer"
        else
            echo "NO $i is neither 0 nor a positive integer"
        fi
    done
}

結果:

$ zero_or_positive_integer foo -2 1.5 0 12
NO foo is neither 0 nor a positive integer
NO -2 is neither 0 nor a positive integer
NO 1.5 is neither 0 nor a positive integer
YES 0 is either 0 or a positive integer
YES 12 is either 0 or a positive integer

おすすめ記事