変数の値が整数かどうかを調べる

変数に入っている値が整数かどうかをチェックしたい、というシチュエーションはよくあると思います。
JavaScriptの isNaN ですね。

result=`test ${hoge} -eq 0 2> /dev/null`
if[ ${result} -le 1 ]; then
    echo "整数"
else
    echo "整数じゃない"
fi

文字列の比較で -eq を使用するとエラーになると、resultにはエラーコード(2以上)が返ってきます。
整数であれば、0 か 1 が返ってくるので、それを利用して整数かどうかチェックできます。


2008/05/15 追記
・・・
すみません。これ、間違ってますね。
実際は以下のようにする必要があります。

test ${hoge} -eq 0 2> /dev/ull
result=$?

if [ ${result} -le 1 ]; then
  echo "整数"
else
  echo "整数じゃない"
fi

直前のコマンドのエラーコードが $? に入っているので、その内容を確認する必要があります。