添加一个换行符以及下方的一行文本 - 在单行、单段、代码片段中

添加一个换行符以及下方的一行文本 - 在单行、单段、代码片段中

我想添加一个一个换行符加上下面的一行文本,在单行、单段、代码块中。

我知道的单行、多段方式是这样的:

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'

替换,pw就地编辑;或者

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

相关内容