1. 程式人生 > 實用技巧 >Linux-Shell內容複習-Shell指令碼條件判斷、流程控制筆記

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)、案例: