无法 cd 到新添加的 Path 变量

Tra*_*iet 3 paths environment-variables

我将以下行添加到/etc/environment

ML="$HOME/ml"
Run Code Online (Sandbox Code Playgroud)

在我重新登录让脚本生效后,运行 printenv ML打印$HOME/ml和运行cd $ML打印

bash: cd: $HOME/ml: No such file or directory
Run Code Online (Sandbox Code Playgroud)

设置新的系统范围路径变量并能够将其用作快捷目录地址的正确方法是什么?

hee*_*ayl 5

/etc/environment(或用户特定的 -- $HOME/.pam_environment)由pam_envPAM 模块定义,然后由loginssh以及类似的会话启动程序用于为正在登录的用户设置启动环境。

/etc/environment不了解任何现有的 shell(或环境)变量,因此$HOME在您的情况下按字面处理,没有进行扩展,因此出现错误。

您需要在此处使用绝对路径,例如:

ML="/home/foobar/ml"
Run Code Online (Sandbox Code Playgroud)