刪除Linux shell中匯出的環境變數


概述

本文解釋如何從系統中刪除環境變數。

環境變數是一種特殊的變數,可以在您的機器上執行的所有程序中使用。此變數的名稱為EXPORTED_VARIABLE。您可以使用它在不同的程式之間甚至不同的使用者之間傳遞資訊。例如,您可能希望匯出儲存音樂檔案的目錄的路徑,以便其他使用者可以輕鬆訪問它們。

環境變數

環境變數儲存在程序的記憶體空間中,可以透過getenv()函式訪問。它返回指向指定環境變數值的指標。如果沒有這樣的變數,則返回NULL。

Linux shell中匯出的變數列表

您可以使用env命令列出當前所有匯出的環境變數。此命令列出已為當前使用者設定的所有環境變數。

$ env | grep -i '^EXPORT'
EXPORTPATH/usr/bin:/usr/local/bin:/home/user1/bin

您可以使用以下命令檢視匯出的變數列表:

$ env | grep -i 'EXPORTED_VAR'

使用unset命令

unset命令是一個shell命令,用於清除匯出環境變數的值。這意味著,如果您執行unset EXPORTED_VARAIBLE,則任何程序都將不再訪問該變數的值。如果要完全刪除變數,則需要執行unset -f EXPORTED_VARIABLE。

讓我們使用此命令並檢視是否得到任何結果。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ unset file_name
$ env | grep file_name

我們透過執行env命令來驗證該變數是否已從我們的shell環境中刪除。

賦值為空值

您可以透過為匯出的變數賦值為空值來清除它們的值。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ export file_name=
$ env | grep file_name
file_name=

它實際上並沒有從環境中刪除變數;而只是將其設定為一個空字串。

使用env命令

env命令允許我們在修改後的環境中執行程式。然後,我們可以使用此命令重置匯出變數的匯出狀態。

$ export file_name="test.txt"
$ env | grep file_name
file_name=test.txt
$ env -i bash
$ env | grep file_name

我們在這裡使用-i標誌,它清除使用者先前設定的變數,並使用預設值啟動另一個bash shell。

退出新的bash會話並檢查環境變數是否出現在舊的會話中。

$ exit
$ env | grep file_name
file_name=test.txt

結論

我們查看了幾種匯出環境變數的不同方法,以便以後可以使用它。我們可以使用這些命令列工具使我們的shell指令碼程式碼更健壯。

更新於:2022年12月23日

16K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告