設置 Shell 變量與環境變量


Linux 系統中能夠設置環境變量的命令有如下幾種:

set — 該命令能夠設置或者取消設置 Shell 變量。當不帶參數使用 set 命令時,它將打印出包括環境變量與 Shell 變量在內的全部變量以及 Shell 函數的列表。

unset — 該命令能夠刪除 Shell 變量以及環境變量。

export — 該命令能夠設置環境變量。

爲了更好地理解 Shell 變量和環境變量之間的區別,咱們先從設置 Shell 變量開始講,而後再講環境變量。

先從在當前會話中定義一個 Shell 變量開始:

$ MYVAR=lxlinux
你能夠用 echo $MYVAR 來驗證變量是否已設置:

$ echo $MYVAR
lxlinux
使用 printenv 命令檢驗該變量是否爲環境變量:

$ printenv MYVAR
沒有輸出返回,這就意味着 MYVAR 變量並非環境變量。

export 命令能夠用來設置環境變量。要建立環境變量,只需用 export 命令將 Shell 變量導出爲環境變量:

$ export MYVAR
你能夠用如下語句檢驗:

$ printenv MYVAR
lxlinux
固然,你也能夠只用一行代碼來設置環境變量:

$ export MYNEWVAR="My New Variable"
可是以這種方式建立的環境變量只能用於當前會話,若是你打開一個新的 Shell 會話,或者退出登錄,全部的變量都將會丟失。

咱們也能夠將環境變量還原爲 Shell 變量,或者將其徹底刪除:

MYVAR 變量被定義爲環境變量,咱們能夠經過輸入如下代碼將其還原爲 Shell 變量:

$ export -n MYVAR
這樣,MYVAR 變量就再也不是環境變量了,但依然仍是 Shell 變量。

不管是 Shell 變量仍是環境變量,想要徹底刪除變量,均可以使用 unset 命令來刪除:

$ unset MYVAR
能夠經過如下語句來驗證 MYVAR 變量已經刪除:

$ echo $MYVAR
因爲變量已經刪除了,因此沒有任何返回。

環境變量的持久化
許多程序都須要使用環境變量來決定具體的執行方式,可是,咱們並不但願每次啓動新的 Shell 會話時都必須從新設置重要的變量,所以咱們須要將重要的環境變量寫

本文分享自微信公衆號 - 軟件測試大咖經驗分享(gh_8a6f5732cffa)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。linux