簡述SHELL全域性環境變數與局變環境變數

roc_guo 發表於 2022-01-24
導讀 在 中,很多程式和 都通過環境變數來獲取系統資訊,儲存臨時資料,配置資訊。環境變數是指用來儲存有關 會話和工作環境資訊,允許你在記憶體中儲存資料,以便程式或shell中執行的 能夠輕鬆訪問到它們。也是儲存持久資料的一種簡便方法。在bash shell中,環境變數分為:全域性和區域性二類環境變數。
概述
全域性環境變數

全域性環境變數對於shell會話和所有生成的子shell都是可見的。區域性變數則只是建立它們的shell可見。在 中有系統環境變數,它們基本都是使用全大寫字母,以區別普通使用者的環境變數。要檢視系統全域性變數,可以使用env , 如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

要檢視個別的環境變數的值,可以使用printenv , 如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

正如前面所說的,全域性變數在所有生成的子shell都是可見的,下面是用子shell輸出USER全域性變數,如下所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

區域性環境變數

區域性環境變數雖然是區域性的,但和全域性環境變數一樣重要。在linux作業系統上有預設全域性環境變數也有區域性環境變數,使用者也可以自定義區域性變數。使用set 命令會顯示某個指定程式下的所有環境變數,包括全域性,局變,使用者自定義變數。

使用者自定義變數
自定義區域性變數

下是自定義一個區域性變數,使用echo來宣告一個變數名my_variable,並賦值一個字串(也可是數字)。然後再使用echo輸出該變數的值。如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

要注意的點是:宣告變數名時必須加$關鍵詞, 賦值時不要加$關鍵詞,輸出時要加$關鍵詞,也可以說使用echo時都要加$。變數名,等號,值三者之間不能有空格。如果變數值有空格時,必須加雙引號。如下所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

如果是在子shell中,那該變數就不存在,退回主執行緒還是存在,如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

自定義全域性變數

設定了全域性變數,在該程式所建立的子程式中,該變數都是可見的。建立全域性變數的方法是先建立一個區域性變數,然後匯出到全域性環境中。通過export來匯出,變數名前面不加$。如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

在子shell中修改全域性變數並不會影響到父shell中該變數的值。這種改變僅在子shell中有效。並不會反映到父shell中。如下圖所示:

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

刪除環境變數

要刪除環境變數可以用unset命令,在unset引用變數名時,不要加$。

簡述SHELL全域性環境變數與局變環境變數簡述SHELL全域性環境變數與局變環境變數

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2852938/,如需轉載,請註明出處,否則將追究法律責任。