IF 條件判斷式,簡單明瞭的表列式整理

Code

IF 條件判斷式在 Shell Script中算是基本盤,不管是判斷值或是驗證布林值。做出不同的資料組合判斷。
以下把常用的if 結構及if條件判斷式列出來,方便一次快速做參考。
同時也列出較少使用的雙條件結構寫法,避免有需要不用寫到兩個 if 來做出雙重判斷。

If 結構

if 寫法

#!/bin/sh
if [ 條件式/判斷式 ]
then
    陳述句一
fi

條件判斷式一 成立執行 陳述句一

if else 寫法

#!/bin/sh
 
if [ 條件判斷一 ]
then
    陳述句一
else
    陳述句二
fi

條件判斷式一 成立執行 陳述句一
條件判斷式一 不成立執行 陳述句二

if else if else 寫法

#!/bin/sh

if [ 條件判斷式一 ]
then
    陳述句一
elif [ 條件判斷式二 ]
then
    陳述句二
else
    陳述句三
fi

條件判斷式一 成立執行 陳述句一
條件判斷式一 不成立執行 條件判斷式二
條件判斷式二 成立執行 陳述句二
條件判斷式二 不成立執行 陳述句三。

IF 雙判斷式

if [ 條件判斷式一 ] &&  [ 條件判斷式二 ] 
then
     陳述句一
fi

此結構下需要 條件判斷式一條件判斷式二 都成立,才會執行 陳述句一

下面為另外一種判斷方式程式碼如下

if [ 條件判斷式一 ] || [ 條件判斷式二 ] 
then
     陳述句一
fi

此結構下需要 條件判斷式一條件判斷式二 其中一個成立,就會執行 陳述句一

IF 判斷條件

字串比較

判斷式說明
$str1 = $str2 $str1 與 $str2 字串是否相同
$str1 == $str2 $str1 與 $str2 字串是否相同
$str1 != $str2 $str1 與 $str2 字串是否不相同
-n $str  當字串有值不是 null 回傳 true
-z $str 當字串沒值是 null 回傳 true

數字比較

判斷式說明
$a -eq $b a 等於 b 傳回 ture
$a -ne $b a 不等於 b 傳回 ture
$a -gt $b a 大於 b 傳回 ture
$a -ge $b a 大於等於 b 傳回 ture
$a -lt $ba 小於 b 傳回 ture
$a -le $b a 小於等於 b 傳回 ture

檔案判斷

判斷式說明
-d file file 是目錄傳回 ture
-f filefile 是檔案傳回 ture
-r filefile 可以讀傳回 ture
-s filefile 儲存容量大於 0 傳回 ture
-w filefile 可以寫入傳回 ture
-x filefile 可以執行傳回 ture
-L filefile 為軟連結傳回 ture
file1 -nt file2file1 比 file2 新傳回 ture
file1 -ot file2 file1 比 file2 舊傳回 ture
file1 -ef file2 file1 與 file2 為同一檔案傳回 ture

參考來源

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *