參考:http://cn.linux.vbird.org/linux_basic/0320bash.php#variable_environphp
我是這樣理解的,bash是一個父程序,全部在bash下運行的指令都能用bash裏定義的環境變量和自定義變量。可是當在bash下再運行一個bash,那麼這就是一個子程序linux
子程序僅會繼承父程序的環境變量, 子程序不會繼承父程序的自定義變量shell
也就是說若是要讓子程序也能用到父程序中的自定義變量,那麼就得把自定義變量變成環境變量。export就能幹這個bash
舉個例子函數
在用xargs中調用函數的時候,以下lua
企圖在當前文件夾下找到全部的lua文件,並echo出來,固然自己要達到這個目的是不須要用到管道的spa
這個時候,執行文件就會提示 bash: t: command not found,也就是說bash不認識t這個玩意。那麼再加上export試下blog
$ sh t_export.sh
./cc/c.lua
function end
./cc/a.lua
function end
./aaaa.lua
function end
./aa/a.lua
function end
./bb/b.lua
function end
./bb/a.lua
function end
./a.lua
function end繼承
export 功能說明:設置或顯示環境變量。
語 法:export [-fnp][變量名稱]=[變量設置值]
補充說明:在shell中執行程序時,shell會提供一組環境變量。export可新增,修改或刪除環境變量,供後續執行的程序使用。export的效力僅限於該次登錄操做。
參 數:
-f 表明[變量名稱]中爲函數名稱。
-n 刪除指定的變量。變量實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出全部的shell賦予程序的環境變量。io