標籤:
一、變數
變數在shell中分為:本地變數、環境變數、位置參數;
本地變數:僅可在使用者當前shell生命期的指令碼中使用的變數,本地變數隨著shell進程的消亡而無效,本地變數在新啟動的shell中依舊無效,類似於c、c++中的局部變數的概念;
環境變數:適用於所有登入進程所產生的子進程;
位置參數:用於向shell指令碼提供傳遞參數,它是唯讀;
變數是某個值的名稱,引用變數值就稱為:變數替換,$符號是變數替換符號,如variable是變數名,那麼,$variable就是表示變數的值;
variable=value #切記:等號兩邊不能出現空格
${variable=value} #同上
樣本如下:
var1="hello world"
var2="I say"
var3="we are saying $var1" #ok
變數的清除:unset命令
unset 變數名
unset var之後,echo $var ,結果顯示空白行,這表示var變數沒有初始化;
變數賦值的模式:
var=value #注意:等號兩邊不能有空格
1 1、變數已初始化情況 2 [email protected]222-132-16-50:~/cp/sh# colour="reb" 3 [email protected]222-132-16-50:~/cp/sh# echo "is ${colour+"blue"}" 4 is blue 5 [email protected]222-132-16-50:~/cp/sh# echo $colour 6 reb 7 [email protected]222-132-16-50:~/cp/sh# unset colour 8 2、變數未被初始化情況, ":=" 和":-" 對已初始化的變數操作,無作用 9 [email protected]222-132-16-50:~/cp/sh# unset colour10 [email protected]222-132-16-50:~/cp/sh# echo $colour11 12 [email protected]222-132-16-50:~/cp/sh# echo "is ${colour:="red"}"13 is red14 [email protected]222-132-16-50:~/cp/sh# echo $colour15 red16 [email protected]222-132-16-50:~/cp/sh# unset colour17 [email protected]222-132-16-50:~/cp/sh# echo "is ${colour:-"red"}"18 is red19 [email protected]222-132-16-50:~/cp/sh# echo $colour20 21 [email protected]222-132-16-50:~/cp/sh#
Linux之shell編程基礎