Bash 将文本附加到“中”/root/.profile";

Bash 将文本附加到“中”/root/.profile";,bash,sudo,Bash,Sudo,我想将一些文本附加到特权文件/root/.profile。我使用了以下脚本来实现这一点 sudo echo“blabla”>>/root/.profile 它仍在抱怨,拒绝许可。这样做的正确方式是什么?我正在使用ubuntu12.04上的bash4甚至在调用sudo之前对流重定向>进行评估。简单的答案是把整个东西放在一个子壳中: sudo sh -c "echo 'blabla' >> /root/.profile" 甚至在调用sudo之前,流重定向>已被赋值。简单的答案是把整个东

我想将一些文本附加到特权文件
/root/.profile
。我使用了以下脚本来实现这一点

sudo echo“blabla”>>/root/.profile


它仍在抱怨,拒绝许可。这样做的正确方式是什么?我正在使用
ubuntu12.04上的
bash4

甚至在调用
sudo
之前对流重定向
>
进行评估。简单的答案是把整个东西放在一个子壳中:

sudo sh -c "echo 'blabla' >> /root/.profile"

甚至在调用
sudo
之前,流重定向
>
已被赋值。简单的答案是把整个东西放在一个子壳中:

sudo sh -c "echo 'blabla' >> /root/.profile"

是,shell将在运行sudo之前打开/root/.profile。 你需要像这样的东西:

echo 'blabla' | sudo tee -a /root/.profile

是,shell将在运行sudo之前打开/root/.profile。 你需要像这样的东西:

echo 'blabla' | sudo tee -a /root/.profile

我认为pixelbeat的答案比我的好;)我忘了
tee
你能详细介绍一下吗,比如为什么
tee
是一个更好的解决方案?@Richard首先生成一个新的
tee
过程可能比生成一个新的
sh
过程便宜,第二,如果在引号内进行变量替换,那么有两个级别的引号可能会让人困惑。如果您在引号内执行任何变量替换,请注意将任意代码作为根漏洞执行!在某些情况下,我的答案可能比pixelbeat更合适,但可能不多。FWIW我认为pixelbeat的答案比我的好;)我忘了
tee
你能详细介绍一下吗,比如为什么
tee
是一个更好的解决方案?@Richard首先生成一个新的
tee
过程可能比生成一个新的
sh
过程便宜,第二,如果在引号内进行变量替换,那么有两个级别的引号可能会让人困惑。如果您在引号内执行任何变量替换,请注意将任意代码作为根漏洞执行!在某些情况下,我的答案可能比pixelbeat更合适,但可能不多。