无法 cd 到新添加的 Path 变量

无法 cd 到新添加的 Path 变量

我添加了以下行/etc/environment

ML="$HOME/ml"

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

bash: cd: $HOME/ml: No such file or directory

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

答案1

/etc/environment(或用户特定的—— $HOME/.pam_environment)由 PAM 模块定义pam_env,并依次由loginssh以及类似的会话启动程序使用来为登录的用户设置启动环境。

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

您需要在这里使用绝对路径,例如:

ML="/home/foobar/ml"

相关内容