if 语句格式
单分支结构
代码语言:javascript复制#第一种
if <条件表达式>
then
指令
fi
#第二种
if <条件表达式>; then
指令
fi
实例1
代码语言:javascript复制#/bin/bash
read -p "请输入两个整数:" a b
if (( $a == $b ))
then
echo "两个数相等"
fi
双分支结构
代码语言:javascript复制if <条件表达式>
then
指令1
else
指令2
fi
示例2
代码语言:javascript复制#第一种写法
#!/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
多分支结构
代码语言:javascript复制if <条件表达式>
then
指令1
elif <条件表达式>
then
指令2
elif <条件表达式>
then
指令3
else
指令4
fi
示例3
代码语言:javascript复制#!/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