我正在创建一个 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/