15、自學——Linux的學習進度與任務【bash編程之條件判斷】
bash編程之條件判斷
bash編程之條件判斷:判定後續操作的前提條件是否滿足
1、條件判斷的常用判斷類型(bash內生的):
整數測試
字符測試
文件測試
2、echo $?(執行狀態返回值):
0:正確
1-255:錯誤
布爾值:
真 假
3、邏輯運算:
與運算:
真 && 真 = 真(0)
真 && 假 = 假(非0)
假 && 真 = 假
假 && 假 = 假
或運算:
真 || 真 = 真(0)
真 || 假 = 真
假 || 真 = 真
假 || 假 = 假
非運算:
!真 = 假
!假 = 真
4、bash中如何做測試:test命令
test 比較表達式
[ 測試表達式 ]:表達式兩端必須要有空格;bash的內生命令
[[ 測試表達式 ]]:同上;bash腳本編程的關鍵字
任何命令的執行結果也可以作為判斷條件
5、bash中條件判斷使用if:
單分支:
if 條件; then
分支1;
fi
雙分支:
if 條件; then
分支1;
else
分支2;
fi
多分支:
if 條件; then
分支1;
elif 條件2; then
分支2;
elif 條件3; then
分支3;
...
else
分支n;
fi
只要命令用作條件,就表示引用的是其狀態結果(即執行成功與否),而非命令的輸出結果,因此,不能使用命令替換符.
只要希望將命令執行的結果需要保存到一個變量的時候,才需要在命令上加上反引號
bash編程之:整數測試
1、二元測試:(一般是用兩個數進行比較)
num1 操作符 num2
操作符:
-eq 等於
-ne 不等於
-le:小於等於
-ge:大於等於
-lt:小於[$num1 -lt $num2]
-gt:大於[$num1 -gt $num2]
2、bash知識點之腳本自動退出
exit [n] n為不為0,1,127,255的數字
條件測試:
bash :每個命令,執行狀態都有返回值
成功:0
失敗:非0
$?:
腳本的狀態返回值:腳本執行的最後一條命令:
自定義腳本狀態返回值:exit[n],獲取返回值用$?
引用命令的執行結果:使用`command`或$(command)
引用命令執行成功與否的狀態結果:一定是直接執行命令。此時,通常需要將執行結果重定向至/dev/null
組合條件測試:對條件做邏輯運算
與:條件1&&條件2
條件1為假,則最終結果一定為假,否則,條件2不予執行
條件1為真,則最終條件結果決於後面條件,因此,條件2必須執行
或:條件1||條件2
條件1為真,則最終結果一定為真,否則,條件2不予執行
條件1為假,則最終條件結果決於後面條件,因此,條件2必須執行
非: !條件
與的優先級大於或,或的優先級大於非
bash編程之:字符測試,一般加引號
雙目:
> : 大於
< :小於
!=, <>: 不等於
==:等於,等值比較, 變量需要加引號
=~:左側是字符串,右側是一個模式,判斷左側的字符串能否被右側的模式所匹配:通常只在[[]]中使用
模式中可以使用行首、行尾錨定符,但是模式不要加引號
單目:
-n $stringVar: 字符串是否不空,不空為真,空則為假
-z $stringVar:字符串是否為空,空則為真,不空則假:
15、自學——Linux的學習進度與任務【bash編程之條件判斷】