引言:在Linux系統(tǒng)中,大家都知道
/etc/profile
中的環(huán)境變量是對所有用戶都生效的镶蹋,細看一下他的源碼,就能可以知道,它會加載/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腳本中間接實現(xiàn)持久化環(huán)境變量
原因:由于shell腳本運行完后贤徒,它針對的環(huán)境變量的操作設置就又回退到當前TTY了,具體實現(xiàn)汇四,就是變一下邏輯就可以了接奈,代碼如下。
- 系統(tǒng)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;