shell腳本語言中的選擇執行
概述
程序執行過程分為順序執行、選擇執行和循環執行。
順序執行是指程序按照步驟一步一步地運行。
選擇執行是指程序根據特定條件選擇兩項或者多項中的一項運行。
循環執行是指程序根據特定條件重復執行直到某個節點結束,繼續運行其他步驟。
本篇文章從判斷條件和條件判斷式簡要說明shell腳本語言中程序選擇執行的用法。
shell腳本中的判斷條件
test的測試功能
文件存在及類型測試 test [OPTION] FILE
-e 該文件名是否存在 -f 該文件名是否存在且為普通文件 -d 該文件名是否存在且為目錄 -b 該文件名是否存在且為塊設備文件 -c 該文件名是否存在且為字符設備文件 -S 該文件名是否存在且為Socket文件 -p 該文件名是否存在且為管道文件 -l 該文件名是否存在且為連接文件
文件權限測試 test [OPTION] FILE
-r 該文件名是否存在且具有可讀屬性 -w 該文件名是否存在且具有可寫屬性 -x 該文件名是否存在且具有可執行屬性 -u 該文件名是否存在且具有“SUID”屬性 -g 該文件名是否存在且具有“SGID”屬性 -k 該文件名是否存在且具有“STICKY”屬性 -s 該文件名是否存在且文件為非空白文檔
文件之間比較 test FILE1 [OPTION] FILE2
-nt 判斷前文件是否比后文件新 -ot 判斷前文件是否比后文件舊 -ef 判斷兩個文件是否指向一個inode
整數之間的比較 test INT1 [OPTION] INT2
-eq 兩數值相等 -ne 兩數值不等 -gt 前數大于后數 -lt 前數小于后數 -ge 前數大于等于后數 -le 前數小于等于后數
字符串測試
test -z STRING 判斷字符串是否為空,為空則為ture test -n STRING 判斷字符串是否為空,為空則為false //-n可省略 test STR1 = STR2 判斷前后字符串是否相同,相同為ture test STR1 != STR2 判斷前后字符串是否相同,相同為false
邏輯鏈接
-a 與關系 -o 或關系 ! 非關系
判斷符號[]
判斷符號用法等同于test,但是要注意:
中括號內每個組件都要有空格鍵分隔
中括號內的變量要用雙引號括起來
中括號內的常量要用單引號或者雙引號括起來
條件判斷式
- if..then
if [條件判斷式] then 條件成立時執行指令 fi
if [條件判斷式1] then
條件1成立時執行指令 else[條件判斷式2] then
條件1失敗時條件2成功時執行指令 else 條件1條件2失敗時執行指令
fi
- case..esac
case $變量名稱 in "變量1")
變量名稱的值為變量1時執行指令
;; "變量2")
變量名稱的值為變量2時執行指令
;;
*)
變量名稱的值不為變量1且不為變量2時執行指令
exit1
;;
shell腳本語言中的判斷執行就是將判斷條件和條件判斷式合理地結合使用。
原創文章,作者:easyTang,如若轉載,請注明出處:http://www.www58058.com/73592
主要介紹了shell中的判斷符,和測試符,內容總結的很詳細,排版也很好,建議把之前學過的盡可能的總結進來,加油,加油!