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赋予程序的环境变量。

 

posted @ 2017-08-07 15:03  Steve_Nash  阅读(252)  评论(0编辑  收藏  举报