シェルスクリプトで変数が数値かどうか判定する際の備忘録です
※N番煎じですみません
こちらを参考にさせて頂いたところいくつか方法があるようだが、以下のexprを使う方法がシンプルであり保守性が高そうだったため使用した。ただ実行速度は比較的遅いようなので、、速度が求められる処理は正規表現で書いたほうがいいかもしれない。
test.sh
NUMBER=1
NUMBER=`expr $NUMBER + 1`
RET=$?
if [ $RET -ge 2 ];then
# if not a number
# expr return code is 2 or greater then 2
NUMBER=1
fi
echo $NUMBER
$ bash test.sh
2
参考