1. 程式人生 > >關於linux的export命令和shell變數的生命週期,環境變

關於linux的export命令和shell變數的生命週期,環境變

原文來自:http://www.cppblog.com/mydriverc/archive/2009/09/16/96476.html

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:為每一個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取.

~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當用戶登入時,該

檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.

~/.bashrc:該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該

該檔案被讀取.

~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 

另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承/etc/profile中的變數,他們是"父子"關係.

~/.bash_profile 是互動式、login 方式進入 bash 執行的

~/.bashrc 是互動式 non-login 方式進入 bash 執行的

通常二者設定大致相同,所以通常前者會呼叫後者。