循环判断程序参数值是否为空(校验指令参数是否null)

要想对脚本中的参数是否为空值使用[ -z "$var" ]判断即可;但是 当一个shell脚本需要输入多个参数时,如果单单使用if判断代码会显得很长!
例如: if [-z "${vals[1]}" ] || [-z "${vals[2]}" ] || [-z "${vals[3]}" ] || [-z "${vals[4]}" ]; then
看4个参数就已经如此之长!
如果加入for循环判断就会简洁很多;例如
for ((i=1;i<m;i++))
do
if [ -z "${vals[i]}" ]; then     
echo "The $i parameter are missing!"
exit 1
fi
done


下面引用一个实例:
#!/bin/bash
paramStr=""
for s in $@
do
   paramStr=$paramStr$s
done
echo $paramStr

#不输入参数是执行脚本将直接退出
psLength=${#paramStr}
 [ $psLength == 0 ] && { echo "Parameters are missing!" ;exit 1; }

 [ ";" == ${paramStr:psLength-1} ] &&  paramStr=${paramStr:0:psLength-1} 
echo $ paramStr

#分别将参数值赋值给数组vals[i]
arr=(${paramStr//,/ })
vals=()
i=1
for ar in ${arr[@]}
do
index=`expr index "$ar" =`
vals[i]=${ar:index}
i=$i+1
done

#将数组个数加1赋值给m
let "m=${#vals[@]}+1"  

#循环判断第i个参数是否为空,为空即退出
for ((i=1;i<m;i++))
do
if [ ! -n "${vals[i]}" ]; then      #这里还可以改为  if [ -z "${vals[i]}" ]; then
echo "The $i parameter are missing!"
exit 1
fi
done


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值