我有一个 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/environment
1 - 或者(更好)在目录中创建自定义文件/etc/profile.d/
,例如
echo 'export MY_VAR="123"' >> /etc/profile.d/myvars
你的脚本当然需要以 root 身份运行,例如使用sudo
[1] 请注意,如果使用/etc/environment
,请删除export
(此文件中的变量仅定义为简单name=value
对)