我正在创建一个 bash 脚本来设置 Ubuntu 16.04 lts 操作系统来下载、安装和其他东西,而无需单独介绍每个命令,我必须在/etc/profile 文件中写入以添加 PATH 环境变量。当我的代码进入该行时,它会显示 Permission Denied 消息,这就是我所拥有的:

sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
bash: /etc/profile: Permission denied

你知道我怎么能解决这个问题吗?

最佳答案

Shell i/o 重定向发生在 shell 执行您的命令之前……换句话说,当您编写:

sudo somecommand >> /etc/profile
>> /etc/profile 部分作为当前用户执行,而不是 root 。这就是您收到“权限被拒绝”消息的原因。有多种方法可以解决这个问题。你可以运行:
sudo sh -c "echo export PATH=$PATH:/usr/local/go/bin >> /etc/profile"

或者,您可以利用 -a 命令的附加 ( tee ) 标志:
echo "export PATH=$PATH:/usr/local/go/bin" | sudo tee -a /etc/profile

关于bash - 如何使用 bash 写入/etc/profile |没有权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51030702/

10-15 01:46