#!/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