shell变量之辨[8]

[环境变量]
脚本只能对它产生的子进程 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进程中的环境变量不被影响


本文链接:https://www.poisonbian.com/post/230.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「shell变量之辨[8]」评论列表

发表评论