Linux-Shell內容複習-Shell指令碼條件判斷、流程控制筆記
條件判斷
一、判斷檔案型別
1)、引數選項:
-d :判斷該檔案是否存在以及是否為目錄,是目錄為true
-e :判斷該檔案是否存在,存在為true
-f :判斷該檔案是否存在以及是否為普通檔案,普通檔案為true
… :還有其他引數判斷塊裝置檔案、管道檔案這些
2)、用法:
1、第一種:
test 選項引數 [目錄或檔案路徑] ($?表示回去上一條命令的執行是否正確,0表示正確)
2、第二種:
[ 選項引數 檔案或目錄路徑]
二、檔案之間的判斷
1)、語法:檔案1 選項引數 檔案2
1、選項引數:
-nt(-ot) :檔案1修改時間是否比2新(舊)
-ef :兩個檔案的Inode號是否一致,判斷是否為同一檔案
三、檔案許可權判斷
1)、語法 :選項引數 檔名
2)、選項引數:
-r :判斷判斷檔案是否存在以及是否有r許可權
-w(-x) :w許可權(x許可權)
…… :還有其他許可權,例如判斷SUID許可權這些
四、字串判斷
1)、語法:選項引數 字串
2)、選項引數:
-z :判斷是否為空(空為true)
-n :判斷是否非空
== :判斷兩個字串是否相等
!= :不等
五、整數之間比較
1)、語法:整數1 選項引數 整數2
2)、選項引數:
-eq :相等(為true)、-ne :不等、-gt :1大於2、-lt :1小於2、-ge :1大於等於2、-le :1小於等於2
六、邏輯判斷
1)、語法:判斷條件1 選項引數判斷條件2
2)、選項引數:
-a :邏輯與
-o :或
! :非(取反),直接放在一個判斷之前
流程控制
一、if
1)、單個if判斷
1、定義語法:
定義方式一:
if [ 表示式 ];then
處理邏輯
fi
定義方式二:
if [ 表示式 ]
then 處理邏輯
fi
2、案例:(注意一些空格的處理)
2)、多個else (三個及以上多了 elif)
二、case
1)、語法:
case $變數名 in
“value1”)
處理邏輯1
;;
“value2”)
處理邏輯2
;;
*)
不再以上定義的處理邏輯
;;
esac
2)、案例:
三、for
1)、語法:
1、方式1:
for 變數名 in 值1 值2 …
do
處理邏輯
done
2、案例
變數定義一般別亂寫空格
2)、語法:
1、方式2
for (( 初始值;迴圈控制條件;變數變化 ))
do
處理邏輯
done
2、案例:
3)、語法:
1、方式3 (方式1的特殊形式):
for 變數名 in $(shell命令)
do
處理邏輯
done
2、案例:
四、while/util
while條件判斷為true則再次迴圈,until是條件判斷為false則再次迴圈
1)、語法:
while [ 條件判斷式 ]
do
處理邏輯
done
2)、案例: