使用 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\""
我在 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
:
sudo bash -c "echo \" $key: $value\" >> \"$fName\""