现在的位置: 首页 > Linux > shell脚本 > 正文
shell判断参数是否为数字
2014年08月27日 shell脚本 ⁄ 共 802字 shell判断参数是否为数字已关闭评论 ⁄ 被围观 13,819 views+

#!/bin/sh  
#这个脚本用来判断后面的参数的种类(非数字,奇数,偶数,浮点数)。 
#用法:Usag: [参数列表] 
# checknum.sh 

#检测参数个数是否合法 
if test $# -lt 1     #当参数个数小于2时,也就是没有整数输入,报错。 
  then echo "参数错误,使用方法:checknum n1 n2 n3... (一个参数序列)。" 
  exit 1               #直接退出 
fi 

#判断参数种类 
forstr in $*         #用一个临时变量str,从参数列表中依次次取出各个参数。 
   do 
   { 
     #将取出的参数传给程序bc,用它来检测这个参数是否为数字,并将错误信息重定向。 
     var=$(echo$str | bc 2>/dev/null) 
     #如果传入的参数是一个数字,bc返回值就是这个数,否则不是,通过这个可以判断参数是否为数字。 
     if ["$var" != "$str" ] #如果bc返回值与这个参数相同,则参数一定是数字,反之则不是。 
     then { 
        echo "$str 不是一个数字。" 
     } 
     #如果参数是数字,则只需要查找是否含有小数点来判断是否为浮点数。 
     elif echo $str|grep "\." >/dev/null 2>&1   
       then { 
         echo "$str 是一个浮点数。" 
       } 
       else { 
         #如果这个参数是一个整数,将他模2,余数为0则是偶数,为1则为奇数。 
         if test `expr $str % 2` -eq 0 
         then echo "$str 是一个偶数。" 
         else echo "$str 是一个奇数。" 
         fi 
       } 
     fi 
   } 
   done 
exit

抱歉!评论已关闭.

×