跳转至

判断语句

if…then形式

类似于C/C++中的if-else语句。


单层if

命令格式:

1
2
3
4
5
6
if condition
then
    语句1
    语句2
    ...
fi

示例:

1
2
3
4
5
6
7
a=3
b=4

if [ "$a" -lt "$b" ] && [ "$a" -gt 2 ]
then
    echo ${a}在范围内
fi
输出结果:
1
3在范围内


单层if-else

命令格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
if condition
then
    语句1
    语句2
    ...
else
    语句1
    语句2
    ...
fi

示例:

1
2
3
4
5
6
7
8
9
a=3
b=4

if ! [ "$a" -lt "$b" ]
then
    echo ${a}不小于${b}
else
    echo ${a}小于${b}
fi
输出结果:
1
3小于4


多层if-elif-elif-else

命令格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
if condition
then
    语句1
    语句2
    ...
elif condition
then
    语句1
    语句2
    ...
elif condition
then
    语句1
    语句2
else
    语句1
    语句2
    ...
fi

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
a=4

if [ $a -eq 1 ]
then
    echo ${a}等于1
elif [ $a -eq 2 ]
then
    echo ${a}等于2
elif [ $a -eq 3 ]
then
    echo ${a}等于3
else
    echo 其他
fi
输出结果:
1
其他


case…esac形式

类似于C/C++中的switch语句。

命令格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
case $变量名称 in
    值1)
        语句1
        语句2
        ...
        ;;  # 类似于C/C++中的break
    值2)
        语句1
        语句2
        ...
        ;;
    *)  # 类似于C/C++中的default
        语句1
        语句2
        ...
        ;;
esac
示例:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
a=4

case $a in
    1)
        echo ${a}等于1
        ;;  
    2)
        echo ${a}等于2
        ;;  
    3)                                                
        echo ${a}等于3
        ;;  
    *)
        echo 其他
        ;;  
esac
输出结果:
1
其他

回到页面顶部