shell 脚本 - 条件分支--if 和case

shell 脚本 - 条件分支–if 和case

条件选择 if

有多个条件时,逐个条件进行判断,第一次遇到“真”条件时,执行其分支,而后结束这个if 语句。且 if 语句可嵌套

格式

单分支

if 判断条件;then
	条件为真的分支代码
fi

双分支

if 判断条件;then
	条件为真的分支代码
else
	条件为假的分支代码
fi

多分支

if 判断条件1;then
	条件1为真的分支代码
elif 判断条件2;then
	条件2为真的分支代码
……
else
	以上条件都为假的分支代码
fi

范例

 #!/bin/bash
 #********************************************************************
 # Author:dawn
 # Date:2020-08-11 15:25:10
 # FileName:if_bmi.sh
 # URL:https://blog.csdn.net/xiao_dan_
 # Version:1.0
 # Description:The test script
 #********************************************************************
 read -p "请输入身高(m为单位):" HIGH
 
 if [[ ! "$HIGH" =~ ^[0-2](\.[0-9]{,2})?$ ]];then
         echo "身高输入错误,请核实!"
         exit 1
 fi
 
 read -p "请输入体重(kg为当单位):"WEIGHT
 if [[ ! "$HIGH" =~ ^[0-9]{1,3}$ ]];then
         echo "输入错误的体重,请核实!"
         exit 1
 fi
 
 BMI=`echo $WEIGHT/$HIGH^2|bc`
 if [ $BMI -le 18 ];then
 		echo "太瘦了,多吃点!"
 elif [ $BMI -lt 24 ];then
         echo "身材很棒!继续保持哟!"
 else
        echo "太胖了,注意饮食,加强运动!"
 fi                                                     

条件判断 case

格式

case 变量引用 in
PAT1)
	分支1
	;;
PAT2)
	分支2
	;;
……
*)
	默认分支
	;;
esac

case 支持glob 风格的通配符

*	任意长度任意字符
?	任意单个字符
[]	指定范围内的任意单个字符
|	或 , 如a | b

范例

#!/bin/bash
#********************************************************************
# Author:dawn
# Date:2020-08-11 15:42:02
# FileName:case_yesorno.sh
# URL:https://blog.csdn.net/xiao_dan_
# Version:1.0
# Description:The test script
#********************************************************************
read -p "Do you agree(yes|no)? " INPUT

case $INPUT in
[yY]|[Yy][Ee][Ss])
	echo "your input is yes"
	;;
[nN]|[Nn][Oo])
	echo "your input is no"
	;;
*)
	echo "input false;please input yes or no!"
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值