5 流程控制
5.1 条件判断
[root@java37master ~]
[root@java37master ~]
1
[root@java37master ~]
[root@java37master ~]
0
[root@java40master ~]
[root@java40master ~]
0
5.2 选择结构之if
格式:
if 条件判断 ; then
statement;
fi;
[root@java37master ~]
> echo "sex="$sex",帅哥!";
> fi;
sex=男,帅哥!
[root@java37master ~]
> echo "sex="$sex",帅哥!";
> fi;
sex=男,帅哥!
[root@java40master ~]
[root@java40master ~]
read -p "请输入一个整数:" i;
if [ $i -lt 0 ];then
echo $i小于0;
fi;
if [ $i -eq 0 ];then
echo $i deng yu 0 ;
fi;
if [ $i -gt 0 ];then
echo $i dayu 0;
fi;
date;
[root@java40master ~]
[root@java40master ~]
双分支格式:
if 条件判断; then
statement1
else
statement2
fi;
sex1="女";
if test $sex1 = "男";then
echo "sex1==="$sex1"称呼是帅哥!";
else
echo "sex1="$sex1"称呼是美女!";
fi;
read -p "请输入一个年:" n;
if [ $((n % 4)) -eq 0 -a $((n % 100)) -ne 0 -o $((n % 400)) -eq 0 ] ; then
echo $n"年是闰年";
else
echo $n"年不是闰年";
fi;
多分支格式:
if 条件判断1; then
statement1
elif 条件判断2; then
statement2
elif 条件判断3; then
statement3
elif 条件判断4; then
statement4
else
statement5
fi;
score=67;
if [ $score -lt 60 ];then
echo "score="$score",等级是不及格!";
elif [ $score -lt 70 ];then
echo "score="$score",等级是及格!";
elif [ $score -lt 80 ];then
echo "score="$score",等级是良好!";
else
echo "score="$score",等级是优秀!";
fi;
5.3 选择结构之case
case格式:
case 变量 in
值1)
statement1;
statement2;;
值2)
statement1;
statement2;;
值3) #值3) 类似于case 值3:
statement1;
statement2;; #;; 类似于break
*) # *) 类似于default
statement1;
statement2;;
esac;
jiJie="春";
case $jiJie in
"春")
echo $jiJie"季对应的月份是3 4 5";;
"夏")
echo $jiJie"季对应的月份是6 7 8 ";;
"秋")
echo $jiJie"季对应的月份是9 10 11";;
"冬")
echo $jiJie"季对应的月份是12 1 2";;
*)
echo $jiJie"季节值错误!";;
esac;
read -p "请输入一个三位数:" n;
if [ $n -ge 100 -a $n -le 999 ];then
echo $n"是三位数!";
n1=$((n % 10));
n2=$((n / 10 % 10));
n3=$((n /100));
echo $n1":"$n2":"$n3;
sumn=$((n1*n1*n1+n2*n2*n2+n3*n3*n3));
if [ $sumn -eq $n ];then
echo $n"是三位数!是水仙花数!";
else
echo $n"是三位数!不是水仙花数!";
fi;
else
echo $n"不是三位数!";
fi;
n=3;
case $n in
1)
echo $n":星期一!";;
2)
echo $n":星期二!";;
3)
echo $n":星期三!";;
4)
echo $n":星期四!";;
5)
echo $n":星期五!";;
6)
echo $n":星期六!";;
7)
echo $n":星期日!";;
*)
echo $n":星期啥也不是!";;
esac;
echo "------根绝性别和年龄判断称呼---------";
read -p "请属于年龄:" nl;
read -p "请属于性别:" xb;
if test $nl -lt 18 -a $xb = '男'; then
echo "性别:"$xb",年龄:"$nl"称呼是:小男孩";
elif test $nl -lt 35 -a $xb = '男'; then
echo "性别:"$xb",年龄:"$nl"称呼是:帅哥";
elif test $nl -lt 60 -a $xb = '男'; then
echo "性别:"$xb",年龄:"$nl"称呼是:叔叔";
elif test $xb = '男'; then
echo "性别:"$xb",年龄:"$nl"称呼是:爷爷";
elif test $nl -lt 18 ; then
echo "性别:"$xb",年龄:"$nl"称呼是:小女孩";
elif test $nl -lt 35 ; then
echo "性别:"$xb",年龄:"$nl"称呼是:美女";
elif test $nl -lt 60 ; then
echo "性别:"$xb",年龄:"$nl"称呼是:阿姨";
else
echo "性别:"$xb",年龄:"$nl"称呼是:奶奶";
fi;