我添加了以下内容,/etc/profile
以便所有用户都可以看到路径
export JAVA_HOME=/opt/jdk11
export PATH=$PATH:$JAVA_HOME/bin
但重新启动笔记本电脑后,我无法使用echo $JAVA_PATH
.我认为脚本的加载方式有一个顺序。另外,如果我要将这些更改添加到 中的单独sh
文件中/etc/profile.d
,它应该执行相同的操作。那么为什么它看不到路径的变化呢?
答案1
也许您正在非交互式 shell 中进行测试。对于交互式 shell,/etc/profile 和 /etc/bash.bashrc 都是来源的,但对于非交互式 shell,仅 /etc/bash.bashrc 是来源。您可以尝试将变量放入该文件中。
其他 shell 上的 /etc/profile、~/.bash_profile、~/.bash_login、~/.profile 和相关文件在这个答案。
答案2
第一行声明/etc/bash.bashrc
如下:
系统范围的 .bashrc 文件交互的bash(1) 外壳。 要为登录 shell 启用此文件中的设置/命令, 该文件必须来自 /etc/profile。
因此,要在任何用户终端中使用的系统范围的附加环境变量应该位于其中。即使 root 环境也会使用这些。