| 變量 | 作用 |
|---|---|
| PATH | 可執行文件搜索路徑 |
| HOME | 當前用戶主目錄 |
| SHELL | 當前 Shell 類型 |
| LANG/LC_ALL | 語言/地區設置 |
| PS1/PS2 | 主/次提示符 |
| HISTSIZE | 歷史命令保存條數 |
| LD_LIBRARY_PATH | 運行時共享庫搜索路徑 |
| IFS | 內部字段分隔符 |
/etc/profile # 登錄 Shell,全局環境變量
/etc/bashrc # 交互式非登錄 Shell,全局別名/函數
~/.bash_profile # 用戶登錄 Shell,個人環境變量
~/.bashrc # 用戶交互式非登錄 Shell,個人別名/函數
~/.profile # 兼容 POSIX 登錄 Shell
原則:環境變量放 profile 類,別名/函數/提示符放 bashrc 類;.bash_profile 通常 source .bashrc。
# export1.sh
foo="local only"
export bar="exported"
./export2.sh
# export2.sh
echo "foo=$foo" # 空行,未導出
echo "bar=$bar" # 輸出 exported
只有 export 的變量才會傳遞給子 Shell/進程。
~/.bash_profile 加 export VAR=value,重新登錄或 source ~/.bash_profileexport VAR=value#!/bin/bash,內部 export 僅影響子進程env (環境變量) / set (含 Shell 局部變量)crontab 任務環境極簡,腳本內必須 export PATH=...sudo 默認重置環境,需 sudo -E 或 Defaults env_keepLANG/LC_ALL 未統一設置為 zh_CN.UTF-8