#!/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
shell判断参数是否为数字