標籤:style blog http io color os ar 使用 for
變數是一個很重要的概念,無論是bash指令碼還是其他語言,都是如此。在bash中,建立變數很簡單,給變數一個名稱即可。預設情況下,變數的值為空白。我們可以通過等號為變數賦值。需要注意的是,變數和變數的值不是一個概念。當給定變數一個名稱後,例如myvar,我們需要通過$取得變數的值,即$myvar。使用echo輸出變數的值。
輸出變數的值的格式為:echo $myvar 或者 echo ${myvar}
使用變數的時候,需要注意以下幾點:
1. 給變數賦值的時候,如果值包含空格,需要用單引號或者雙引號包起來,否則會引起錯誤
2. 給變數賦值的時候,如果使用單引號,那麼單引號裡面的變數就不會解析成真正的值。使用雙引號則可以
3. 可以將一個命令執行的結果賦給一個變數。格式為:myvar=$(command) 或者 `comand`。值得注意的是,務必要將$()和${}的用途分開
4. 變數的擴增,即將新的內容增加到變數原來的值上去。格式為"$變數名稱" 或 ${變數} 擴增內容
5. 使用export將變數變成環境變數,使得bash子進程可以使用變數。請看:
6. 判斷變數是否未設定,如果未設定則用-後面的內容賦值。文法為:var2=${var1-hellovar1}(若var1未設定,那麼將hellovar1賦值給var2,否則將var1的值賦給var2)。需要注意的是,如果var1設定為空白值了,那麼也算是賦值了
7. 判斷變數是否未設定或者設定為空白值,如果未設定或者設定為空白值則用-後面的內容賦值。文法為:var2=${var1:-hellovar1}。如,注意與第六點區分開
關於第6、7的更多用法與規則,參考下表(出自鳥哥Linux私房菜:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_2.php):
| 變數配置方式 |
str 沒有配置 |
str 為空白字串 |
str 已配置非為空白字串 |
| var=${str-expr} |
var=expr |
var= |
var=$str |
| var=${str:-expr} |
var=expr |
var=expr |
var=$str |
| var=${str+expr} |
var= |
var=expr |
var=expr |
| var=${str:+expr} |
var= |
var= |
var=expr |
| var=${str=expr} |
str=expr
var=expr |
str 不變
var= |
str 不變
var=$str |
| var=${str:=expr} |
str=expr
var=expr |
str=expr
var=expr |
str 不變
var=$str |
| var=${str?expr} |
expr 輸出至 stderr |
var= |
var=$str |
| var=${str:?expr} |
expr 輸出至 stderr |
expr 輸出至 stderr |
var=$str |
菜鳥學Linux - 變數基本規則