[环境变量]
脚本只能对它产生的子进程 export 变量.一个从命令行被调用的脚本export 的变量,将不能影响调用这个脚本的那个命令行 shell 的环境.
function func()
{
    echo "GLOBAL = $GLOBAL";
    export LOCAL="abc"
    echo "LOCAL = $LOCAL";
}
export GLOBAL="global";
export LOCAL="LOCAL";
(func)  #()即表示使用一个子shell执行
echo "LOCAL = $LOCAL";

可能上面的一句话粗看起来比较费解. 解释一下

1. export, 即可以改变一个环境变量的值, 比如我们在linux shell下可以export LANG=en_US, 去设置语言变量
2. 如果A进程, 调用B进程(比如调用另一个shell脚本, 或者是用一个子shell去执行一个函数)
3. B进程中使用export去改变环境变量的值, 该变量在B中生效
4. A进程中的环境变量不被影响

The post shell变量之辨[8] appeared first on 邮递员大叔.