記錄下來,不常用就會忘
注意:這裡的空格很重要。要確保方括號的空格,前後都要有。
if ....; then
....
elif ....; then
....
else
....
fi[ -f "somefile" ] :判斷是否是乙個檔案
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權
[ -n "$var" ] :判斷$var變數是否有值
[ "$a" = "$b" ] :判斷$a和$b是否相等
-r file 使用者可讀為真
-w file 使用者可寫為真
-x file 使用者可執行為真
-f file 檔案為正規檔案為真
-d file 檔案為目錄為真
-c file 檔案為字元特殊檔案為真
-b file 檔案為塊特殊檔案為真
-s file 檔案大小非0時為真
-t file 當檔案描述符(預設為1)指定的裝置為終端時為真
含條件選擇的shell指令碼 對於不含變數的任務簡單shell指令碼一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell指令碼程式設計支援此類運算,包括比較運算、判斷檔案是否存在等。
基本的if條件命令選項有: - eq —比較兩個引數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個引數是否不相等
-lt —引數1是否小於引數2
-le —引數1是否小於等於引數2
-gt —引數1是否大於引數2
-ge —引數1是否大於等於引數2
-f — 檢查某檔案是否存在(例如,if [ -f "filename" ])
-d — 檢查目錄是否存在
幾乎所有的判斷都可以用這些比較運算子實現。指令碼中常用-f命令選項在執行某一檔案之前檢查它是否存在。
linux中shell變數$#,$@,$0,$1,$2的含**釋:
變數說明:
$$ shell本身的pid(processid)
$! shell最後執行的後台process的pid
$? 最後執行的命令的結束**(返回值)
$- 使用set命令設定的flag一覽
$* 所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。
$@ 所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。
$# 新增到shell的引數個數
$0 shell本身的檔名
$1~$n
新增到shell的各引數值。$1是第1引數、$2是第2引數…。
make變數和shell變數的比較
一.變數名 make變數名是不包括 前置空白和尾空白的任何字串。shell中的變數名和c語言中的要求一樣,即只能是字母,數字和下劃線,且 第乙個字元不能是數字 二.定義 shell中也可以巢狀定義,如 var yanghua is good man var1 var 和make不同,shell中引用...
Shell基礎之 變數 比較 測試
一 變數 環境變數 位置變數 預定義變數 1 環境變數 env 檢視環境變數2 位置變數 vi location.sh bin bash sum expr 1 2 echo 1 2 sum location 12 34 則12為第乙個位置變數賦值為 1,32為第二個為 2。location為預定義變...
變數 shell變數( )
變數型別 執行shell時,會同時存在三種變數 a 區域性變數 在指令碼或命令中定義,僅在當前shell例項中有效,其他shell啟動的程式不能訪問區域性變數。b 環境變數 所有的程式,包括shell啟動的程式,都能訪問環境變數,有些程式需要環境變數來保證其正常執行。必要時shell指令碼也可以定義...