Linux判断个数的参数,shell判断参数是否为数字 | 旺旺知识库

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值