1. ホーム
  2. linux

[解決済み] Bashで変数が数値であるかどうかをテストするにはどうすればよいですか?

2022-03-14 11:53:52

質問

スクリプトに渡された引数が数字であるかどうかを確認する方法がわかりません。

私がやりたいのは、こんなことです。

test *isnumber* $1 && VAR=$1 || echo "need a number"

何かお手伝いできることはありますか?

解決方法は?

一つの方法として、次のような正規表現を使う方法があります。

re='^[0-9]+$'
if ! [[ $yournumber =~ $re ]] ; then
   echo "error: Not a number" >&2; exit 1
fi

値が必ずしも整数でない場合は、正規表現を適切に修正することを検討してください。

^[0-9]+([.][0-9]+)?$

...または、数字を符号で処理する場合。

^[+-]?[0-9]+([.][0-9]+)?$