export:將自訂變數設定為系統內容變數(當前shell中有效)
功能說明:設定或顯示環境變數。
語 法:export
[-fnp][變數名稱]=[變數設定值]
補充說明:在shell中執行程式時,shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該此登陸操作。
參 數:
-f 代表[變數名稱]中為函數名稱。
-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的shell賦予程式的環境變數。
在shell中輸入export可以輸出當前的變數。也可以通過
export TARGET=arm-linux-這樣的命令設定環境變數,
export PATH=$PATH:/.../bin。
當執行一個指令碼時,新開了一個子shell,繼承父shell中的環境
變數,但是在子shell中定義的變數是不能被帶回到父shell中。
/etc/environment是設定整個系統的環境,而/etc/profile是設定所有使用者的環境,前者與登入使用者無關,後者與登入使用者有關。
如果同一個變數在使用者環境(/etc/profile)和系統內容(/etc/environment)有不同的值那應該是以使用者環境為準了。
另外設定環境變數可以在/etc/profile中,區別如下:
/etc/profile:此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.
並從/etc/profile.d目錄的設定檔中搜集shell的設定.
/etc/bashrc:為每一個運行bashshell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.
~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該
檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc:該檔案包含專用於你的bashshell的bash資訊,當登入時以及每次開啟新的shell時,該
該檔案被讀取.
~/.bash_logout:當每次退出系統(退出bashshell)時,執行該檔案.
另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關係.
~/.bash_profile 是互動式、login 方式進入 bash 啟動並執行
~/.bashrc 是互動式 non-login 方式進入 bash 啟動並執行
通常二者設定大致相同,所以通常前者會調用後者。