shell流程控制
if 判断
基本语法
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件判断式 ]
then
程序
elif [条件判断式]
then
程序
fi
注意事项:****(1)[ 条件判断式 ],中括号和条件判断式之间
**必须有空格 **(2) 推荐使用第二种方式
应用实例
案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 1#!/bin/bash
2
3#案例:请编写一个 shell 程序,如果输入的参数,大于等于 60,则输出 "及格了",如果小于 60, 则输出 "不及格"
4if [ $1 -ge 60 ]
5then
6 echo "及格了"
7elif [ $1 -lt 60 ]
8then
9 echo "不及格"
10fi
11
12echo "-------------------------------"
13
14if [ $1 -ge 60 ];then
15 echo "分数ok"
16elif [ $1 -lt 60 ];then
17 echo "分数不ok"
18fi
19
20echo "-------------------------------"
21
22if [ $1 -ge 60 ]
23then
24 echo "分数够了"
25else
26 echo "分数不够"
27fi
28
29
**注意:**如果if [ $1 -ge 60 ] 和then写在同一行的话,记得要在[ $1 -ge 60 ]后面加上;分号,语法才不会报错,正确写法如下
if [ $1 -ge 60 ];then
还有一种写法也是正确的,就是不要把if [ $1 -ge 60 ]和then写在同一行,而是把then换行写,如果是把then换行写的话,
那if [ $1 -ge 60 ]后面就不用加;分号了
正确写法如下
if [ $1 -ge 60 ]
then
如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号
if [ $1 -ge 60 ];
then
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 1#!/bin/bash
2
3#注意
4
5#[ $1 -ge 60 ]后面不写;分号,并且then和if写在同一行,看看语法会不会报错(经过测试,语法会报错)
6if [ $1 -ge 60 ] then
7 echo "及格了,再接再厉"
8elif [ $1 -lt 60 ] then
9 echo "不及格,要加油哦"
10fi
11
12#正确的第1种写法如下,如果你想把if [ $1 -ge 60 ]和then放在同一行写,那就在[ $1 -ge 60 ]后加
13#上;分号,如下
14
15if [ $1 -ge 60 ];then
16 echo "及格了,再接再厉"
17elif [ $1 -lt 60 ];then
18 echo "不及格,要加油哦"
19fi
20
21
22#正确的第2种写法如下,把then写到下一行,此时if [ $1 -ge 60 ]后面可以不用加;分号
23if [ $1 -ge 60 ]
24then
25 echo "及格了,再接再厉"
26elif [ $1 -lt 60 ]
27then
28 echo "不及格,要加油哦"
29fi
30
31
32#如下这种写法也是正确的,把then写到下一行,此时if [ $1 -ge 60 ]后面可以加;分号,也可以不加分号
33if [ $1 -ge 60 ];
34then
35 echo "及格了,再接再厉"
36elif [ $1 -lt 60 ];
37then
38 echo "不及格,要加油哦"
39fi
40
41#建议大家把这几种写法都试一试,我也是全部都是自己动手写了一遍,做个笔记,怕自己以后忘记,我记忆
42#力不太好
43