shell脚本之判断输入参数是否为整数值的实例

在写脚本时,通常会有很多关于命令行参数,变量等的判断其是否存在或者类型是否正确。当判断一个从命令行接收到一个值,需要判断其是否为整型值时,有以下两种方法:

1、用shell命令使其与某个整型值进行计算,通过$?来判断其是否是一个整型值。

flag=true
read -p "please input a number:" num
while $flag
do
   expr $num + 0 &>/dev/null
   [ $? -eq 0 ] && flag=false || read -p "please input a integer:" num
done

2、通过sed来判断

flag=true
read -p "please input a number:" num
while $flag
do
  len=`echo "$num"|sed 's/[0-9]//g'|sed 's/-//g'`
  [ -n $len ] && flag=false || read -p "please input a integer:" num
done

相关推荐