跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
IF 條件判斷式,簡單明瞭的表列式整理
資訊技術••約 2 分鐘•575 字

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

本文目錄共 3 節

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 $ba 等於 b 傳回 ture
$a -ne $ba 不等於 b 傳回 ture
$a -gt $ba 大於 b 傳回 ture
$a -ge $ba 大於等於 b 傳回 ture
$a -lt $ba 小於 b 傳回 ture
$a -le $ba 小於等於 b 傳回 ture

檔案判斷

判斷式說明
-d filefile 是目錄傳回 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 file2file1 比 file2 舊傳回 ture
file1 -ef file2file1 與 file2 為同一檔案傳回 ture

參考來源

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。