linux shell腳本之條件與測試

一.文件類型測試:
判斷文件是否存在以及文件的類型
-a FILE:同-e -e FILE: 文件存在性測試,存在爲真,否則爲假
-b FILE:是否存在且爲塊設備文件
-c FILE:是否存在且爲字符設備文件
-d FILE:是否存在且爲目錄文件
-f FILE:是否存在且爲普通文件
-h FILE 或 -L FILE:存在且爲符號鏈接文件
-p FILE:是否存在且爲命名管道文件
-S FILE:是否存在且爲套接字文件
例子 判斷asd.txt是否存在且爲普通文件:linux shell腳本之條件與測試
存在且爲普通文件纔會繼續後面的命令,輸出存在且爲普通文件:
linux shell腳本之條件與測試
二.文件權限測試:
-r FILE:是否存在且可讀
-w FILE: 是否存在且可寫
-x FILE: 是否存在且可執行
特殊權限測試
-u FILE:是否存在且擁有suid權限
-g FILE:是否存在且擁有sgid權限
-k FILE:是否存在且擁有sticky權限
例子: 判斷文件asd.txt是否可讀
先查看文件權限linux shell腳本之條件與測試
如圖文件可讀
編寫腳本linux shell腳本之條件與測試
有可讀權限 則輸出文件可讀
linux shell腳本之條件與測試
三.數值比較測試
-eq : 第一個數等於第二個數。
-ne:第一個數不等於第二個數。
-gt :第一個數大於第二個數。
-lt :第一個數小於第二個數。
-le:第一個數小於或等於第二個數。
-ge:第一個數大於或等與第二個數。
例子linux shell腳本之條件與測試
輸入數字 等於1則輸出等於1
linux shell腳本之條件與測試
四.字符串測試
使用read來把輸入值分配給一個或多個shell變量
-p 指定要顯示的提示
-s 靜默輸入,一般用於密碼
-n N 指定輸入的字符長度N
-d ‘字符’ 輸入結束符
-t N TIMEOUT爲N秒

== 是否等於
ascii碼是否大於ascii碼
< 是否小於
!= 是否不等於
=~ 左側字符串是否能夠被右側的PATTERN所匹配

五.組合條件測試。
&&:邏輯與,表示前後兩個表達式都成立時整個測試結果才爲真,否則結果爲假。
||:邏輯或,表示前後兩個條件至少有一個成立時整個測試結果即爲真,否則結果爲假。
!:邏輯否,表示當指定的條件表達式不成立時,整個測試命令的結果爲真。
例子 判斷文件是否不可讀並且不可寫
linux shell腳本之條件與測試
linux shell腳本之條件與測試
不符合條件則不輸出
linux shell腳本之條件與測試
六. if的用法格式
單分支的if語句是最簡單的選擇結構,這種結果只判斷指定的條件,當”條件成立“時執行相應的操作,否則不做任何操作。單分支使用的語句格式如下。
if 條件測試命令
then
命令序列
fi
雙分支的if語句使用了兩路命令操作,在”條件成立‘、“條件不成立時分別執行不同的命令序列”。雙分支使用的語句格式如下:
if 條件測試命令
then
命令序列1;
else
命令序列2;
fi
由於if語句可以根據條件測試命令的兩種狀態分別進行操作,所以能夠嵌套使用,進行多次判斷。多重分支使用的語句格式如下。
if 條件測試命令1
then
命令序列1
elif 條件測試命令2
then
命令序列2
else
命令序列3
fi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章