我正在尝试制作一个bash脚本,除其他外,该脚本将字符串“ fastboot noswap ro”附加到/boot/cmdline.txt的末尾。
起初,我正在尝试sudo echo " fastboot noswap ro" >> /boot/cmdline.txt
,但遭到拒绝。
我了解到,对于受保护的文件,最好的方法是echo ' fastboot noswap ro' | sudo tee -a /boot/cmdline.txt
。
这行得通,但是它使它从新行开始。在tee手册页上我找不到任何有关添加而不插入新行的内容。
如何在不创建新行的情况下附加到受保护的文件?
答案 0 :(得分:2)
不能。换行符已经存在,您不能通过追加来删除它们。
相反,您必须用更改后的行替换文件的内容。
最简单的方法可能是sed
:
sudo sed -i -e 's/$/ fastboot noswap ro/' /boot/cmdline.txt
或paste
:
paste /boot/cmdline.txt <(echo fastboot noswap ro) | sudo tee /boot/cmdline.txt
答案 1 :(得分:0)
尝试一下:
echo -n ' fastboot noswap ro' | sudo tee -a /boot/cmdline.txt
男人回声说
Options:
-n do not append a newline