我想添加一个一个换行符加上下面的一行文本,在单行、单段、代码块中。
我知道的单行、多段方式是这样的:
sudo bash -c "echo '' >> /etc/bash.bashrc" && sudo bash -c "echo 'alias www=\"cd /var/www/html\"' >> /etc/bash.bashrc"
这是单行,但不是单段方式(&&
需要a)。
另一方面,另一种方式,此处文档是单段(否&&
)但有多行,我正在寻找单行、单段的方式。你知道任何?
答案1
printf '\nalias www="cd /var/www/html"\n' | sudo tee -a /etc/bashrc
printf
解释 C 风格的反斜杠转义符,包括\n
.tee -a
打开给定文件进行追加,并将收到的输入写入其中。
您也可以将其应用到您现有的bash -c
:
sudo bash -c "printf '\\nalias www=\"cd /var/www/html\"\\n' >> /etc/bashrc"
如果您确实想避免使用顶级 shell 运算符,则它不使用这些运算符。
答案2
这里有一些俏皮话供您使用并让它们发挥作用sudo
:
printf '%s\n' a '' 'alias www="cd /var/www/html"' . ,p q | ed -s /etc/bash.bashrc
与此处的字符串相同:
ed -s /etc/bash.bashrc <<< $'a\n\nalias www="cd /var/www/html"\n.\n,p\nq'
替换,p
为w
就地编辑;或者
sed -e '${G;G;s|$|alias www="cd /var/www/html"|' -e'}' /etc/bash.bashrc
添加-i
( gnu sed
) 或-i ''
( bsd sed
) 以就地编辑;或者
cat <<< $'\nalias www="cd /var/www/html"' >> /etc/bash.bashrc