我有以下问题:在一个不应该以root身份执行的脚本中,我需要向一个新创建的空文件写入一行。这个文件位于/etc目录下,所以我需要提升权限才能写入。
创建文件很简单:
sudo touch /etc/myfile
现在,仅仅像这样使用 echo 写入文件是不起作用的...
sudo echo "something" > /etc/myfile
...因为只有命令的第一部分(echo)使用sudo执行,而不是重定向到文件中。
以前我使用了这样的方法...
sudo sed -i -e "\$aInsert this" /etc/differntfile
我尝试使用sed命令向文件末尾添加内容,因为文件不为空,所以这种方式可以成功。但由于sed是基于行的操作,它并没有做任何操作,文件仍然完全为空。
有什么建议吗?有没有办法用echo实现这个目的?有没有特殊的sed表达式?还有其他工具可以使用吗?