編程語言中都有條件判斷,shell編程也不例外,下面咱們來看一下shell中應該怎麼使用if條件判斷shell
如下藍色字體部分爲Linux命令,紅色字體的內容爲輸出的內容:編程
# cd /opt/scriptsvim
# vim script07.sh編程語言
開始編寫script07.sh的腳本,腳本內容爲:字體
#! /bin/sh if [ 3 -gt 2 ] then echo "3>2" fi if [ 3 -lt 2 ] then echo "3<2" else echo "3>2" fi
上面的代碼,注意if後面跟的條件是用中括號括起來的,注意括號和判斷條件中間要有空格,否則會報錯。spa
還要注意關鍵字部分都須要新起行,否則也會報錯。code
條件的結束關鍵字比較特殊,用的是fi,恰好是把if反過來寫。blog
關係運算符中-gt是指大於,-lt是指小於,下面是關係運算符的列表:ip
運算符 | 說明 | 舉例 |
---|---|---|
-eq | 檢測兩個數是否相等,相等返回 true。 | [ $a -eq $b ] 返回 false。 |
-ne | 檢測兩個數是否不相等,不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
-gt | 檢測左邊的數是否大於右邊的,若是是,則返回 true。 | [ $a -gt $b ] 返回 false。 |
-lt | 檢測左邊的數是否小於右邊的,若是是,則返回 true。 | [ $a -lt $b ] 返回 true。 |
-ge | 檢測左邊的數是否大於等於右邊的,若是是,則返回 true。 | [ $a -ge $b ] 返回 false。 |
-le | 檢測左邊的數是否小於等於右邊的,若是是,則返回 true。 | [ $a -le $b ] 返回 true。 |
開始執行這個腳本:ci
# chmod +x script07.sh
# ./script07.sh
3>2
3>2
上面的代碼,也常常會這麼寫:
#! /bin/sh if [ 3 -gt 2 ]; then echo "3>2" fi if [ 3 -lt 2 ]; then echo "3<2" else echo "3>2" fi
這兩段代碼的區別就是第二段代碼會把if和then放到一行,分號是用來隔斷每一個語法關鍵字或命令的,因此若是想把then關鍵字放到if同一行,就須要在then前添加分號
兩段代碼功能同樣,我這裏主要是演示一下分號的使用。