在shell編程中,常常會用if來判斷條件,從而控制程序的流程分支。if語句是非常簡單,跟其他語言差不多,不過,在shell中,要注意一些細節是很有必要的。
在這裡,不給出if的基本語法格式,網上搜索下,很多的。這裡給出個簡單的例子:
- #! /bin/sh -
-
- name=`basename $0 .sh`
-
- if [ $# -ne 2 -a $# -ne 3 ]; then
- echo "Usage: $name value1 value2"
- echo " $name value1 value2 value3 "
- exit 1
- fi
-
- if [ $# -eq 2 ]; then
- echo "two args: $1, $2"
- else
- echo "three args: $1 $2 $3"
- fi
-
- if [ $# -eq 2 ]; then
- if [ $1 -gt $2 ]; then
- echo " $1 > $2"
- elif [ $1 -lt $2 ]; then
- echo " $1 < $2 "
- else
- echo "$1 = $2"
- fi
- else
- if [ $1 -ge $2 -a $1 -ge $3 ]; then
- echo "$1 >=$2 , $1 >=$3"
- elif [ $1 -ge $2 -a $1 -lt $3 ]; then
- echo "$1 >=$2 ,$1 < $3"
- elif [ $1 -lt $2 -a $1 -ge $3 ]; then
- echo "$1 < $2, $1 >= $3"
- else
- echo "$1 < $2, $1 < $3"
- fi
- fi
- exit 0
將上面的內容保存為文件保存為if.sh,並給文件賦予可執行權限。然後通過調用該shell。該shell腳本主要是通過if語句,對不同的參數進行判斷輸出。上面的腳本基本囊括了常用的if then if else if elif 。if語句中,主要需要注意以下幾點:
1、if 與[ 之間必須有空格
2、[ ]與判斷條件之間也必須有空格
3、]與; 之間不能有空格
關於比較運算符與邏輯運算符,請參閱 Shell腳本比較運算符及邏輯運算符小結 http://www.linuxidc.com/Linux/2012-02/53148.htm