Shell變量詳解
什麼是變量?爲什麼要使用變量?
各種shell環境中都使用到了“變量”的概念,shell變量用來存放系統和用戶需要使用的特定參數(值),而且這些參數可以根據用戶的設置或系統環境的變化而相應的變化。通過使用變量,shell程序可以提供更加便捷靈活的功能,實用性和靈活性更強。
常見的shell變量類型包括自定義變量,環境變量,預定義變量,位置變量。
一自定義變量
Bash中的變量操作相對比較簡單,不像其他高級編程語言(如C語言,java語言)那麼複雜,在定義一個新的變量的時候,一般不需要提前進行聲明,而是直接指定變量名稱,並賦給初始值即可。
格式:變量名=變量值
變量賦值的特殊操作:
1) 雙引號 “”
如圖所示,當賦值的內容包含空格時,必須以雙引號括起來,其他情況可以省略
2) 單引號 ‘’
當賦值內容包含$,”,\等特殊符號時,應使用單引號括起來,(特殊字符當普通字符對待)。如果賦值內容包含單引號時,需要使用“\’”符號進行轉義。
3) 反撇號 ``
主要用於命令替換,允許將執行的某個命令的屏幕輸出結果賦值給變量。反撇號括起來的範圍內必須能夠執行命令行
4) 數值變量的運算
expr 變量1 運算符 變量2 [運算符 變量3]
+ 加法運算
- 減法運算
\*乘法運算
% 求模運算 相除後的餘數
二:特殊的shell變量
1) 環境變量
2) 位置變量
位置變量又稱位置參數,使用$1 $2$3````表示
例如 Ls –lh /etc ls爲執行命令,-lh爲第一個位置變量$1,/etc爲第二個變量$2
3) 預定義變量
預定義變量是由bash程序預先定義好的一類特殊變量,用戶只能使用而不能創建新的預定義變量,也不能直接爲預定義變量賦值。常見預定義變量如下:
$# 表示命令行中位置參數的個數
$* 表示所有位置參數的內容
$? 表示前一條命令執行後的返回狀態,返回爲0表示執行正確,任何非0表示運行出現異常
$0 表示當前執行的腳本或程序名稱