linux环境变量不能生效问题

在Linux中,普通用户在/etc/profile中添加环境变量MYENV后,通过source命令生效,但在新终端或脚本中无法读取。问题在于nonlogin-shell不加载/etc/profile。使用'su -'切换用户或登录shell时,环境变量才正确读取。
摘要由CSDN通过智能技术生成


  在/etc/profile中添加环境变量时,遇到了一点问题,在此记录。

以下下操作大概复现了所出的问题。

1.      普通用户登录系统,切换到root,在/etc/profile中添加环境变量MYENV=abc

2.      直接打印环境变量,#echo $MYENV,输出为空

3.      执行#source  /etc/profile后,打印#echo$MYENV,输出abc

4.      打开新的终端,此时为普通用户,打印环境变量#echo $MYENV,结果为空

5.      重启系统,普通用户登录,打开终端,#echo $MYENV依然为空

6.      使用普通用户登录,su  -  think ,$echo $MYENV,输出abc

7.      写一个脚本,其中有echo  $MYENV。执行这个脚本,这条输出为空

8.      切换到root,,$su  - ,打印MYENV可得到abc,但是执行脚本,依然输出为空

  很奇怪,明明可以打印出环境变量,但是脚本却不能正确执行。这里提一些上述操作涉及到的一些东西。

su只是切换了身份,但是环境变量依然为原用户的环境变量。使用su - 可以将环境变量也改变。

在图形界面环境下,打开终

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值