本資料では、数値チェック(整数のみ)と英字チェックのサンプルシェルスクリプトを以下に記します。
bashにて動作確認を行いました。
以下の数値チェックは、exprコマンドを使用しています。
(sedでも実現できますね…)
尚、exprの計算結果が0の場合は、$? に 1 が返却されます。
$ expr 1 - 1 0 $ echo $? 1
よって、以下のサンプルスクリプトでは、 -lt 2 となっています。
数値(整数のみ)の場合は、0を返却し、数値(整数)以外の場合は1を返却します。
IsNumeric() {
if [ ! -n "$1" ]; then
return 1 # $1 is empty
fi
expr "$1" + 1 > /dev/null 2>&1
if [ ! $? -lt 2 ]; then
return 1
fi
return 0
}
実際に動作させたときの出力です。
上記のスクリプトを端末に貼り付け(Paste)て実行してます。
$ IsNumeric() {
> if [ ! -n "$1" ]; then
> return 1 # $1 is empty
> fi
> expr "$1" + 1 > /dev/null 2>&1
> if [ ! $? -lt 2 ]; then
> return 1
> fi
> return 0
> }$ IsNumeric $ echo $? 1
$ IsNumeric 100 $ echo $? 0
$ IsNumeric -100 $ echo $? 0
$ IsNumeric abc $ echo $? 1
$ IsNumeric 1.1 $ echo $? 1上記の通り、整数の場合は、0を返却。
以上、exprを使った数値チェックのサンプルシェルスクリプトでした。