如何使用bash写入/etc/profile |没有权限
How to write in /etc/profile using bash | Permission Denied
我正在创建一个 bash 脚本来设置 Ubuntu 16.04 lts OS 来下载、安装和其他东西,而不需要单独介绍每个命令,我必须写/etc/profile文件添加一个PATH环境变量。当我的代码进入该行时,会出现“权限被拒绝”消息,这就是我所拥有的:
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
。这就是您收到 "permission denied" 消息的原因。有多种方法可以解决这个问题。你可以 运行:
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
sudo sh -c "echo MY_GLOBAL_ENV_TO_MY_CURRENT_DIR=$(pwd)" >> /etc/environment"
我正在创建一个 bash 脚本来设置 Ubuntu 16.04 lts OS 来下载、安装和其他东西,而不需要单独介绍每个命令,我必须写/etc/profile文件添加一个PATH环境变量。当我的代码进入该行时,会出现“权限被拒绝”消息,这就是我所拥有的:
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
。这就是您收到 "permission denied" 消息的原因。有多种方法可以解决这个问题。你可以 运行:
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
sudo sh -c "echo MY_GLOBAL_ENV_TO_MY_CURRENT_DIR=$(pwd)" >> /etc/environment"