所有的程式設計語言中都有控制結構,Shell編程也不例外。其中if結構是最常用的分支控制結構。
Linux shell編程中常用的if語句有:if.....then...fi,if....then....else....fi,if....then...elif......
if....then.....else...語句非常簡單,文法如下:
if 運算式
then 命令表
[else 命令表]
fi
其中運算式是判斷條件,命令表是條件成立時執行的shell命令,fi代表整個if語句的結束,必須得有。
下面看一個例子:
#!/bin/bash#filename:if.sh#author:gybread numif [ $num -lt 10 ];then echo "$num<10"else echo "$num>10"fi
增加可執行許可權
root@ubuntu:~# chmod +x if.sh
執行
root@ubuntu:~# ./if.sh
2
2<10
root@ubuntu:~# ./if.sh
24
24>10
代碼中[ $num -lt 10 ] 是test命令的另一種寫法,需要注意的是‘[‘’之後和‘]’之前必須有一個空格。
if....then....elif.....是一個多分支結構,如果程式需要的話elif可以無限制的寫下去(其中elif代表else if的縮寫)。
例子:
#!/bin/sh#filename:elif.sh#author:gybecho "input score:"read scoreif [ $score -ge 0 -a $score -lt 60 ];then echo "E"elif [ $score -ge 60 -a $score -lt 70 ];then echo "D"elif [ $score -ge 70 -a $score -lt 80 ];then echo "C"elif [ $score -ge 80 -a $score -lt 90 ];then echo "B"elif [ $score -ge 90 -a $score -le 100 ];then echo "A"else echo "input error"fi
代碼中判斷條件中 -a代表邏輯與,只有當-a前後兩個條件同時成立時,整個運算式才為真。
添加可執行許可權:
root@ubuntu:~# chmod +x elif.sh
執行
root@ubuntu:~# ./elif.sh
input score:
34
E
root@ubuntu:~# ./elif.sh
input score:
67
D
root@ubuntu:~# ./elif.sh
input score:
78
C
root@ubuntu:~# ./elif.sh
input score:
89
B
root@ubuntu:~# ./elif.sh
input score:
99
A
if語句是可以嵌套的,並且可以多重嵌套
例子:
#!/bin/bash#filename:ifnest.sh#author:gybread numif [ $num -lt 100 ];then echo "$num<100" if [ $num -lt 50 ];then echo "$num<50" if [ $num -lt 30 ];then echo "$num<30" fi fifi
添加可執行許可權
root@ubuntu:~# chmod +x ifnest.sh
執行
root@ubuntu:~# ./ifnest.sh
23
23<100
23<50
23<30
root@ubuntu:~# ./ifnest.sh
45
45<100
45<50
End.