Linux的Bash的環境變量
命令執行順序
1 以相對/絕對路徑執行命令
2 由alias找到該命令執行
3 由bash內建的命令執行
4 通過$PATH變量順序搜索到第一個指令來執行
login shell與non-login shell
login shell
完整的登錄流程。
在tty1-tty6輸入用戶名和密碼
/etc/profile 系統整體配置文件
~/.bash_profile或~/.bash_login或~/.profile
用戶個人配置文件。
non-login shell
不需要重復登錄的流程。
一種是進入X window後再啟動終端
一種是在bash環境再啟動子進程bash
~/.bashrc
用戶個人配置文件
環境變量相關的內建命令
source
(或直接使用小數點".")
讀取並執行環境配置文件,修改配置文件而不需要注銷再登錄。
echo 輸出環境變量
export 傳遞環境變量到其子進程
set 顯示環境變量或設置環境變量
unset 取消變量
環境變量相關命令
env 查看現有的環境變量
locale 查看當前的語系信息
stty 顯示或設定文字終端設置,主要是按鍵的代表意義
環境變量設定規則
1 變量與變量內容以等號連接。等號兩邊不能直接有空格。變量開頭只能是字母。
Linux代碼
$ mypath=/home/mydata //設置環境變量
2 變量內容中的雙引號與單引號的區別。
Linux代碼
$ mypath="lang is $LANG" //保留特殊字符的意義
$ mypath='lang is $LANG' //所有字符都認為是一般字符
3 可以使用轉移字符“\”,將特殊字符變為一般字符。
4 想到引用一個命令的結果,可以用反單引號`命令`或$(命令)
Linux代碼
$ echo `uname -r`
$ echo $(uname -r)
5 若給一個變量一個增量時,可以
Linux代碼
$ mypath="$mypath":/home/bin
6 若將該變量傳遞到其子進程中,可以
Linux代碼
$ export mypath
變量內容的刪除和替換
${變量#關鍵詞} 從頭開始檢查關鍵詞,將符合的最短數據刪除
${變量##關鍵詞} 從頭開始檢查關鍵詞,將符合的最長數據刪除
${變量%關鍵詞} 從尾開始檢查關鍵詞,將符合的最短數據刪除
${變量%關鍵詞} 從尾開始檢查關鍵詞,將符合的最長數據刪除
${變量/舊字符串/新字符串} 若符合舊字符串,則第一個舊字符串被替換
${變量//舊字符串/新字符串} 若符合舊字符串,則全部舊字符串被替換
變量內容的設定和替換
var和str為變量,expr為一般字符串
變量設定方式 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