方法1
[ -n “`echo $num|sed ‘s#[0-9]##g’`” ] && echo “参数必须是数字” && exit 1
-n 表示字符串不为空 –z 表示为空
语法解释:条件 –n 不为空,读入一个变量管道给sed把所有数字替换为空,然后判断是否为空,如果为空表示变量是纯数字,如果不为空表示变量中有字母。
方法2
expr $a + 0 &>/dev/null
[ $? -eq 0 ] && echo yes || echo no
语法解释:因为expr只能计算整数运算,所以先让变量+0,如果变量不是整数则会报错,我们利用$?返回值来判断是否成立,如果返回等于0则表示变量是整数。
方法3
[[ $test =~ ^[0-9]+$ ]]