天天看點

位置參數及操作符号

特殊字元對應的處理參數:

參數 說明
$0 目前執行的腳本檔案名,若全路徑執行,則顯示腳本路徑
$n 目前執行腳本的第n個參數值,若n>9,則需寫成${10}
$# 目前傳參總個數
$$ 腳本運作的目前程序ID号,用例:當一個程序重複啟動時自動将前面的程序殺死,避免重複啟動
$! 背景運作的最後一個程序的ID号
$* 以一個字元串顯示所有向腳本傳遞的參數
$@ 所有位置參數内容,将每個參數視為單個字元串傳遞
$? 顯示最後指令的退出狀态,0表示正常,其他任何值表示有錯誤

常用檔案測試操作符号:

符号
-f 檔案,--file 檔案存在且是普通檔案則真
-d 檔案,--directory 檔案存在且是目錄檔案則真
-s 檔案,--size 檔案存在且大小不為0則真
-e 檔案,--exist 檔案存在則真
-r 檔案,--read 檔案存在且可讀則真
-w 檔案,--write 檔案存在且可寫則真
-x 檔案,--executable 檔案存在且可執行則真
-L 檔案,--link 檔案存在且為連結檔案則真
f1 -nt f2,--newer than 檔案f1比檔案f2新則真,根據檔案修改時間計算
f1 -ot f2,--older than 檔案f1比檔案f2舊則真,根據檔案修改時間計算

字元串測試操作符:

操作符
-z "字元串",--zero 若串長度為0則真
-n "字元串",--no zero 若串長度不為0則真
"串1"="串2" 若串1等于串2則真,可使用"=="代替"="
"串1"!="串2" 若串1不等于串2則真,不能用"=="代替"="

注:

1.以上表格中的字元串測試操作符号務必要用""引起來;

2.比較符号兩端有空格。

eg:[ -n "$myvar"]

整數二進制比較操作符:

[]及test中使用的比較符 (())及[[]]中使用的比較符
-eq ==或= equal,相等
-ne != not equal,不相等
-gt > greater than,大于
-ge >= greater equal,大于等于
-lt < less than,小于
-le <= less equal,小于等于

邏輯連接配接符:

[]及test中使用的邏輯操作符 [[]]中使用的邏輯操作符
-a && and與,兩端都為真,則真
-o || or或,兩端有一個為真則真
not非,相反則為真

通路數組元素:

${array[0]} 通路數組中第一個元素
${array[@]} 通路數組所有元素;等同于${array[*]}
${#array[@]} 統計數組元素的個數
${!array[@]} 擷取數組元素的索引
${array[@]:1} 從數組下标1開始
${array[@]:1:2} 從數組下标1開始,通路兩個元素
lengthn=${#array[n]} 擷取數組單個元素長度

-------------------------------------------------------------

作者:

羅穆瑞

出處:

http://www.cnblogs.com/kazihuo/

轉載請保留此段聲明,且在文章頁面明顯位置給出原文連結,謝謝!

------------------------------------------------------------------------------

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,部落客在此感謝!

繼續閱讀