使用root权限在bash中创建/编辑文件

时间:2015-04-07 04:05:14

标签: root privileges writefile bash4

我正在创建然后在具有root权限的目录中写入bash4中的文件。

我从stackoverflow看了这些结果: https://unix.stackexchange.com/questions/37875/how-to-add-a-line-to-a-file-which-has-only-root-write-permission-and-to-continue

但没有帮助我。 $fName下方包含文件路径。

首先,我触摸文件:sudo touch $fName;

我正在写一个键值对(YAML),这有效:

echo " "$key": "$value

但是当我尝试写入文件$fName时,如:

sudo sh -c 'echo "  "$key": "$value >> $fName';

甚至:

sudo sh -c 'echo \"  "$key": "$value\ >> $fName';

不起作用。

获取各种错误:

  

错误的替换,命令未找到等。

我还试图写入内存或/ tmp,然后将其移动到目录。

这会是一个更好的主意吗?不知怎的,这也不起作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

包括变量在内的所有内容都将被视为字符串,但不是变量!

这有用吗? sudo sh -c "echo \" $key: $value \" >> $fName"

答案 1 :(得分:0)

我相信您会希望保留$fName周围的引号以防止path/filename中的空格:

sudo bash -c "echo \"  $key: $value\" >> \"$fName\""