通过 bash 脚本设置系统环境变量?

通过 bash 脚本设置系统环境变量?

我有一个 bash 脚本,需要添加系统环境变量可供所有用户访问,并且应该是永久的。 我试过:

#!/bin/bash
$EDITOR ~/.profile
export MY_VAR="123"

但我收到了错误:line 2: /root/.profile: Permission denied即使我以 root 身份执行它。

答案1

您收到的错误很可能是因为EDITOR未设置 - 因此您的命令变为

~/.profile

试图执行.profile调用用户的(在本例中很明显)root

即使 set$EDITOR通常指向交互的文本编辑器 - 它不会神奇地将以下行插入到文件中。/root/.profile无论如何个人的 .profile用户文件root- 如果您想修改系统范围的环境,则没有帮助。

要进行系统范围的更改,您应该修改/etc/profile/etc/environment1 - 或者(更好)在目录中创建自定义文件/etc/profile.d/,例如

echo 'export MY_VAR="123"' >> /etc/profile.d/myvars

你的脚本当然需要以 root 身份运行,例如使用sudo


[1] 请注意,如果使用/etc/environment,请删除export(此文件中的变量仅定义为简单name=value对)

相关内容