一.概述 在linux中,很多程式和腳本都通過環境變數來獲取系統信息,存儲臨時數據,配置信息。環境變數是指用來存儲有關shell會話和工作環境信息,允許你在記憶體中存儲數據,以便程式或shell中運行的腳本能夠輕鬆訪問到它們。也是存儲持久數據的一種簡便方法。在bash shell中,環境變數分為:全局 ...
一.概述
在linux中,很多程式和腳本都通過環境變數來獲取系統信息,存儲臨時數據,配置信息。環境變數是指用來存儲有關shell會話和工作環境信息,允許你在記憶體中存儲數據,以便程式或shell中運行的腳本能夠輕鬆訪問到它們。也是存儲持久數據的一種簡便方法。在bash shell中,環境變數分為:全局和局部二類環境變數。
1.1全局環境變數
全局環境變數對於shell會話和所有生成的子shell都是可見的。局部變數則只是創建它們的shell可見。在linux系統中有系統環境變數,它們基本都是使用全大寫字母,以區別普通用戶的環境變數。要查看系統全局變數,可以使用env命令, 如下圖所示:
要查看個別的環境變數的值,可以使用printenv命令, 如下圖所示:
正如前面所說的,全局變數在所有生成的子shell都是可見的,下麵是用子shell輸出USER全局變數,如下所示:
1.2 局部環境變數
局部環境變數雖然是局部的,但和全局環境變數一樣重要。在linux操作系統上有預設全局環境變數也有局部環境變數,用戶也可以自定義局部變數。使用set 命令會顯示某個指定進程下的所有環境變數,包括全局,局變,用戶自定義變數。
二.用戶自定義變數
2.1 自定義局部變數
下是自定義一個局部變數,使用echo來聲明一個變數名my_variable,並賦值一個字元串(也可是數字)。然後再使用echo輸出該變數的值。如下圖所示:
要註意的點是:聲明變數名時必須加$關鍵詞, 賦值時不要加$關鍵詞,輸出時要加$關鍵詞,也可以說使用echo時都要加$。變數名,等號,值三者之間不能有空格。如果變數值有空格時,必須加雙引號。如下所示:
如果是在子shell中,那該變數就不存在,退回主線程還是存在,如下圖所示:
2.2 自定義全局變數
設定了全局變數,在該進程所創建的子進程中,該變數都是可見的。創建全局變數的方法是先創建一個局部變數,然後導出到全局環境中。通過export來導出,變數名前面不加$。如下圖所示:
在子shell中修改全局變數並不會影響到父shell中該變數的值。這種改變僅在子shell中有效。並不會反映到父shell中。如下圖所示:
2.3 刪除環境變數
要刪除環境變數可以用unset命令,在unset引用變數名時,不要加$。