参考: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