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

create / edit file in bash with root privileges

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

我查看了来自 Whosebug 的这些结果: 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';

不起作用。

出现各种错误:

Bad substitution, command not found etc.

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

这样会更好吗?不知何故,这也不起作用。

感谢您的帮助。

包括变量在内的所有东西都将被视为字符串而不是变量!

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

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

中出现 space
sudo bash -c "echo \"  $key: $value\" >> \"$fName\""