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 - 可以将环境变量也改变。

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,环境变量生效范围取决于其设置的位置和使用的终端类型。通常情况下,当用户登录时,会执行一个登录Shell脚本来设置环境变量。这个登录Shell脚本可以是`~/.bash_profile`或`~/.profile`。在这些脚本中,可以通过`export`命令将环境变量设置为全局可用。 另外,在非登录Shell中,比如新开的终端窗口,环境变量可以通过`~/.bashrc`文件设置。这个文件仅在当前用户的个人配置中生效。如果希望所有用户都能访问到设置的环境变量,则可以将其设置在`/etc/bashrc`文件中。 总结来说,要让环境变量Linux生效,可以将其设置在`~/.bash_profile`、`~/.profile`、`~/.bashrc`或`/etc/bashrc`等文件中,具体取决于所需的生效范围。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [环境变量是如何生效的——以Linux操作系统为例](https://blog.csdn.net/weixin_46192593/article/details/126043685)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [linux环境变量生效顺序](https://blog.csdn.net/weixin_32820311/article/details/116766621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值