3

bashスクリプトの引数が 5 桁の整数かどうかをテストしたいと考えています。

if [ "$1" == [0-9][0-9][0-9][0-9][0-9] ]; then
    echo "first arg is 5 digits"
else
    echo "not 5 digits"

これは私にはうまくいきません。関数を使用するなど、これを行う簡単な方法はありexprますか?

4

3 に答える 3

4

で参照CONDITIONAL EXPRESSIONSしてくださいman bash:

if [[ "$1" =~ ^[0-9]{5}$ ]]; then
    echo "first arg is 5 digits"
else
    echo "not 5 digits"
fi
于 2013-01-25T23:46:53.370 に答える
4

この種の式をテストするときは、二重括弧を使用する必要があります。

于 2013-01-26T00:14:34.777 に答える
0
case "$1" in
  [0-9][0-9][0-9][0-9][0-9]) echo "first arg is 5 digits" ;;
  *) echo "not 5 digits" ;;
esac
于 2013-01-25T23:47:45.343 に答える