在運行Bash時,會同時存在三種變量分別為局部變量、環境變量和內部變量。
## 1.局部變量
局部變量在腳本或命令中定義,僅在當前Bash實例中有效,其他Bash啟動的程序不能訪問局部變量。關于Bash變量:
* Bash腳本中定義的變量是global的,其作用域從被定義的地方開始,到Bash結束或被顯示刪除的地方為止。
* Bash函數定義的變量默認是global的,其作用域從“函數被調用時執行變量定義的地方”開始,到Bash結束或被顯示刪,函數定義的變量可以被顯示定義成local的,其作用域局限于函數內。但請注意,函數的參數是local的。
* 如果同名,Bash函數定義的local變量會屏蔽腳本定義的global變量。
局部變量的關鍵字為"local",以下為局部變量案例。
```
#!/bin/bash
function hello()
{
local text="Hello World!!!" # 定義局部變量
echo $text
}
hello
echo $text # 可以試著去掉函數中的local,再執行本腳本的效果
```
## 2.環境變量
所有的程序包括Bash啟動的程序都能訪問環境變量,有些程序需要環境變量來保證其正常運行。在Bash中可以通過以下三個命令來查看環境變量,他們區別在于:
* set 用來顯示本地變量
* env 用來顯示環境變量
* export -p 用來顯示和設置環境變量
**(注:變量和環境變量的區別是:變量不能被子進程繼承,而環境變量會被子進程繼承。)**
我們還可以通過以下兩個文件來設置環境變量:
* /etc/profile
* ~./.bash\_profile
## 3.內部變量
內部變量是Bash程序設置的特殊變量。Bash變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了Bash的正常運行,以下包含Bash的。
| **內部變量** | **解釋** |
| :--- | :--- |
| $BASH\_VERSION | Bash版本 |
| $HOSTNAME | hostname |
| $HOME | 宿主目錄(家目錄) |
| $PATH | 環境變量 |
| $RANDOM | 隨機整數 |
- Introduction
- 1.Shell編程基礎
- 什么是Shell
- 編寫第一個Bash程序
- 2.變量
- 什么是變量
- 變量四種賦值方式
- 指定變量類型
- 變量的類型
- 特殊變量
- 3.Bash符號相關
- Bash符號相關
- 特殊符號
- 數學運算符號
- 4.內建命令與外部命令
- 內建命令與外部命令
- 5.read命令
- read命令
- 6.條件語句
- if..then..fi
- if..then..else..fi
- if..then..elif..fi
- 空命令
- 文件測試符
- 字符串判斷、與、或和非
- []與[[]]符號
- 7.Bash循環 && 分支語句
- while循環語句
- for循環
- for..in循環
- until循環
- select循環
- case分支語句
- 8.正則表達式
- 正則表達式
- 9.子Shell和受限Shell
- 子Shell
- 受限Shell
- 10.函數與函數的加載
- 函數語法與案例
- 遞歸函數
- 函數的加載
- 11.Bash腳本風格
- Bash腳本風格
- 12.Bash腳本調試
- Bash腳本調試
- 13.sed && awk
- sed
- 14.awk
- awk
- 15 Bash雜項 && 案例
- while循環的陷阱
- Bash的生命周期
- IO重定向
- /bin/bash和/bin/sh區別
- 命令雜項
- Shell加密
- 16.10.2.案例
- Bash版回收站
- 17.Bash中文速查表
- 中文速查表