export
参考:http://cn.linux.vbird.org/linux_basic/0320bash.php#variable_environ
我是这样理解的,bash是一个父程序,所有在bash下运行的指令都能用bash里定义的环境变量和自定义变量。但是当在bash下再运行一个bash,那么这就是一个子程序
子程序仅会继承父程序的环境变量, 子程序不会继承父程序的自定义变量
也就是说如果要让子程序也能用到父程序中的自定义变量,那么就得把自定义变量变成环境变量。export就能干这个
举个例子
在用xargs中调用函数的时候,如下
企图在当前文件夹下找到所有的lua文件,并echo出来,当然本身要达到这个目的是不需要用到管道的
这个时候,执行文件就会提示 bash: t: command not found,也就是说bash不认识t这个玩意。那么再加上export试下
$ 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赋予程序的环境变量。