Jav*_*las 5 permissions bash environment ubuntu
我正在创建一个 bash 脚本来设置 Ubuntu 16.04 lts 操作系统来下载、安装和其他东西,而无需单独介绍每个命令,我必须在 /etc/profile 文件中写入以添加 PATH 环境变量。当我的代码进入该行时,它会显示“权限被拒绝”消息,这就是我所拥有的:
sudo echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
bash: /etc/profile: Permission denied
Run Code Online (Sandbox Code Playgroud)
你知道我怎么能解决这个问题吗?
lar*_*sks 12
Shell i/o 重定向发生在shell 执行您的命令之前……换句话说,当您编写:
sudo somecommand >> /etc/profile
Run Code Online (Sandbox Code Playgroud)
该>> /etc/profile部分作为当前用户执行,而不是作为root. 这就是您收到“权限被拒绝”消息的原因。有多种方法可以解决这个问题。你可以运行:
sudo sh -c "echo export PATH=$PATH:/usr/local/go/bin >> /etc/profile"
Run Code Online (Sandbox Code Playgroud)
或者,您可以利用命令的 append ( -a) 标志tee:
echo "export PATH=$PATH:/usr/local/go/bin" | sudo tee -a /etc/profile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6985 次 |
| 最近记录: |