我正在创建然后在具有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,然后将其移动到目录。
这会是一个更好的主意吗?不知怎的,这也不起作用。
感谢您的帮助。
答案 0 :(得分:0)
包括变量在内的所有内容都将被视为字符串,但不是变量!
这有用吗? sudo sh -c "echo \" $key: $value \" >> $fName"
答案 1 :(得分:0)
我相信您会希望保留$fName
周围的引号以防止path/filename
中的空格:
sudo bash -c "echo \" $key: $value\" >> \"$fName\""