c++实例研究

从0开始

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  104 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

常用链接

留言簿(1)

随笔分类

随笔档案

参考

我的几个分站

搜索

最新评论

阅读排行榜

评论排行榜

在shell环境中,如果直接使用sudo命令将结果通过管道写入文件,会发生权限问题。例如
sudo echo "JAVA_HOME=/usr/local/jre" >> /etc/profile
其中,/etc/profile的权限是644,发生权限不足的报错。

这可能是由于sudo只针对执行命令权限,并没有针对写入文件权限。我们需要用bash -c方式包装整个命令执行(注意双引号的转义)

sudo bash -c "echo \"JAVA_HOME=/usr/local/jre\" >> /etc/profile"

另一种方法是采用tee命令
sudo echo "JAVA_HOME=/usr/local/jre" | sudo tee -a /etc/profile >  /dev/null

posted on 2012-02-01 17:34 elprup 阅读(1655) 评论(0)  编辑 收藏 引用