shell if语句

罗小黑
2021-06-20 / 0 评论 / 53 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年06月21日,已超过45天没有更新,若内容或图片失效,请留言反馈。

if 语句格式

单分支结构

#第一种
if <条件表达式>
then
   指令
fi

#第二种
if <条件表达式>; then
指令
fi

实例1

#/bin/bash
read -p "请输入两个整数:" a  b
if  (( $a == $b ))
then
echo  "两个数相等"
fi

双分支结构

if <条件表达式>
then
  指令1
else
  指令2
fi

示例2

#第一种写法
#!/bin/bash
read -p "请输入两个整数:" a b
if [ $# -ne 2 ] || [[ ! $a =~ [0-9]+$ ]] || [[ ! $a =~ [0-9]+$ ]]; then
   echo "输入错误,请输入两个整数!"
fi
if (( $a == $b ))
then
  echo "$a=$b"
else
  echo "$a!=$b"
fi
#第二种写法
#!/bin/bash
read -p "请输入两个整数:" a b
#判断输入是否为空
[ -z "$a" ] || [ -z "$b" ] && {
echo "输入错误,不能为空值,请输入两个整数"
exit 1
}
#判断是否为整数
expr $a + 10 &>/dev/null
RETAL1=$?
expr $b + 10 &>/dev/null
RETAL2=$?
test $RETAL1 -eq 0 -a $RETAL2 -eq 0 || {
echo "输入错误,请输入两个整数"
exit 2
}
if [ "$a" -eq "$b" ] 
then
  echo "$a=$b"
else
  echo "$a!=$b"
fi

多分支结构

if <条件表达式>
then
  指令1
elif <条件表达式>
then
  指令2
elif <条件表达式>
then
  指令3
else
  指令4
fi

示例3

#!/bin/bash
read -p "请输入成绩:" a
[ -z "$a" ] && {
echo "输入错误,数值为空"
exit 1
}
[[ ! "$a" =~ ^[0-9]+$ ]] && echo "输入错误,请输入数字" && exit 2 
if [ "$a" -gt 90 ]
then 
  echo "优秀"
elif [ "$a" -ge 80 -a "$a" -lt 90 ]
then
  echo "良好"
elif [ "$a" -ge 70 -a "$a" -lt 80 ]
then
  echo "一般"
elif [ "$a" -ge 60 -a "$a" -lt 70 ]
then
  echo "及格"
else
  echo "不及格"
fi
0

评论 (0)

取消