文字列が整数かを調べる

testコマンドで数値と文字列を比較するとエラーになる
文字列が整数でなければ終了コードが2以上になる

#!/bin/sh
#isnum.sh

is_num(){
    [ "$1" -eq 0 ] 2>/dev/null
    if [ $? -ge 2 ]; then
        echo "$1 is NOT a valid integer."
    else
        echo "$1 is a valid integer."
    fi
}

is_num "256"
is_num "-32"
is_num "X64"
$ ./isnum.sh
256 is a valid integer.
-32 is a valid integer.
X64 is NOT a valid integer.