美文网首页
shell脚本中持久化环境变量

shell脚本中持久化环境变量

作者: LeeBoot | 来源:发表于2018-08-16 16:20 被阅读0次

    引言:在Linux系统中,大家都知道/etc/profile中的环境变量是对所有用户都生效的,细看一下他的源码,就能可以知道,它会加载/etc/profile.d/*下的所有文件

    • /etc/profile源码(部分)

    for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
        if [ -r "$i" ]; then
            if [ "${-#*i}" != "$-" ]; then 
                . "$i"
            else
                . "$i" >/dev/null
            fi  
        fi  
    done
    
    • shell脚本中间接实现持久化环境变量

    原因:由于shell脚本运行完后,它针对的环境变量的操作设置就又回退到当前TTY了,具体实现,就是变一下逻辑就可以了,代码如下。

    • 系统ENV > 局部ENV(脚本)
    • 局部ENV更改,在程序运行完后就又回退了
    #!/bin/bash
    source /etc/profile
    echo $SHENJIAN_INIT
    if [ ! -n "$SHENJIAN_INIT" ] ; then
            echo "start init config...";
            touch /etc/profile.d/shenjian-init.sh
            sleep 2
            echo '#/bin/bash' >> /etc/profile.d/shenjian-init.sh
            echo 'SHENJIAN_INIT="init_success"' >> /etc/profile.d/shenjian-init.sh
            echo "end init config"
    fi;
    

    相关文章

      网友评论

          本文标题:shell脚本中持久化环境变量

          本文链接:https://www.haomeiwen.com/subject/qddobftx.html