環境變數基本概念
登入系統取得 Shell 時,同時獲得一組環境設定(環境變數),供 Shell 及其子程序使用。變數以「名稱=值」形式存在,名稱慣用大寫。
常見環境變數
| 變數 | 含義 |
| HOME | 使用者家目錄 |
| PATH | 命令搜尋路徑 |
| PWD | 目前工作目錄 |
| SHELL | 目前 Shell 執行路徑 |
| UID | 使用者 ID |
| PS1 | 提示字元格式 |
| LANG | 語系設定 |
查看與設定變數
# 查看
echo $HOME
echo $PATH
# 設定暫時變數(僅目前 Shell 有效)
MYVAR="hello"
# 匯出為環境變數(子程序可繼承)
export MYVAR
# 永久設定:寫入 ~/.bashrc 或 /etc/profile
echo 'export MYVAR="hello"' >> ~/.bashrc
source ~/.bashrc
變數特性:單向輸出與繼承
- 父 Shell 設定並
export 的變數,子 Shell 可繼承;子 Shell 修改不影響父 Shell。
- 未
export 的變數為區域變數,子程序不可見。
引號與跳脫字元規則
| 語法 | 行為 | 範例 |
雙引號 "..." | 保留變數展開、命令替換、跳脫字元 | echo "Home is $HOME" |
單引號 '...' | 所有字元視為字面值,不展開變數 | echo 'Home is $HOME' |
反引號 `...` 或 $() | 命令替換 | FILES=$(ls) |
反斜線 \ | 跳脫下一字元特殊含義 | echo \$HOME 輸出 $HOME |
實用技巧
- 命令過長需換行:行尾加
\ 再按 Enter 續行。
unset VAR 刪除變數定義。
env 或 printenv 列出所有環境變數。