
Shell 流程控制
1、if判断
1.1、简单的if判断
[root@root test02]# vim test01.sh
read -p "请输出您的成绩:source=" grade
if [ $grade -ge 60 ]
then
echo "您的成绩为$grade,及格了"
fi
[root@root test02]# chmod +x ./test01.sh
[root@root test02]# ./test01.sh
请输出您的成绩:source=99
您的成绩为99,及格了
1.2、if~else判断
[root@root test02]# vim test01.sh
read -p "请输出您的成绩:source=" grade
if [ $grade -ge 60 ]
then
echo "您的成绩为$grade,及格了"
else
echo "您的成绩为$grade,小于及格线(60)"
fi
[root@root test02]# ./test01.sh
请输出您的成绩:source=59
您的成绩为59,小于及格线(60)
1.2、if~else if~else判断
[root@root test02]# vim test01.sh
read -p "请输出您的成绩:source=" grade
if [ $grade -ge 90 ]
then
echo "您的成绩为$grade,优秀"
elif [ $grade -ge 80 -a $grade -lt 90 ]
then
echo "您的成绩为$grade,良好"
elif [ $grade -ge 70 -a $grade -lt 80 ]
then
echo "您的成绩为$grade,中等"
elif [ $grade -ge 60 -a $grade -lt 70 ]
then
echo "您的成绩为$grade,及格"
else
echo "您的成绩为$grade,没达到及格线"
fi
[root@root test02]# ./test01.sh
请输出您的成绩:source=56
您的成绩为56,没达到及格线
[root@root test02]# ./test01.sh
请输出您的成绩:source=78
您的成绩为78,中等
2、case~esac多选择
[root@root test02]# vim test01.sh
echo “按月选择季度”
read -p "请输入数字(1-12):num=" num
case $num in
1|2|3)
echo "第一季度"
;;
4|5|6)
echo "第二季度"
;;
7|8|9)
echo "第三季度"
;;
10|11|12)
echo "第四季度"
;;
*)
echo "输入错误,注输入的数字必须在1-12之间"
;;
esac
[root@root test02]# ./test01.sh
“按月选择季度”
请输入数字(1-12):num=5
第二季度
[root@root test02]# ./test01.sh
“按月选择季度”
请输入数字(1-12):num=13
输入错误,注输入的数字必须在1-12之间
3、for循环
3.3、基本for循环
[root@root test02]# vim test01.sh
for i in 1 2 3 4
do
echo "the num is $i"
done
[root@root test02]# ./test01.sh
the num is 1
the num is 2
the num is 3
the num is 4
#或者用一行表示法
[root@root test02]# vim test01.sh
for i in 1 2 3 4;do echo "The num is $i";done;
[root@root test02]# ./test01.sh
the num is 1
the num is 2
the num is 3
the num is 4
3.4、增强for循环
[root@root test02]# vim test01.sh
sum=0
for((i=0;i<=100;i++))
do
sum=$[ $sum + $i]
done
echo "1-100的和为:total=$sum"
[root@root test02]# ./test01.sh
1-100的和为:total=5050
4、while循环
[root@root test02]# vim test01.sh
i=10
echo "10秒倒计时开始"
while(( $i<=0 ))
do
echo $i
let "i--"
done
echo "10秒倒计时结束"
[root@root test02]# ./test01.sh
10秒倒计时开始
10
9
8
7
6
5
4
3
2
1
0
10秒倒计时结束
i=0
while :
do
echo "无限叠加$(i++)"
done
5、until循环
[root@root test02]# vim test01.sh
i=10
echo "10秒倒计时开始"
until(( $i<0 ))
do
echo $i
let "i--"
done
echo "10秒倒计时结束"
[root@root test02]# ./test01.sh
10秒倒计时开始
10
9
8
7
6
5
4
3
2
1
0
10秒倒计时结束

文章转载自Itbestboy,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




