shell變數 比較

2021-08-14 12:35:09 字數 1386 閱讀 7591

記錄下來,不常用就會忘

注意:這裡的空格很重要。要確保方括號的空格,前後都要有。

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指令碼也可以定義...