私改行文字と次のテキスト行、1行、1段落、またはコードブロックとして表示されます。
私が知っている1行と複数の段落の方法は次のとおりです。
sudo bash -c "echo '' >> /etc/bash.bashrc" && sudo bash -c "echo 'alias www=\"cd /var/www/html\"' >> /etc/bash.bashrc"
これは1行ですが、1つの段落ではありません(&&
a必要)。
一方、他の方法では、ここのドキュメント単一の段落(いいえ&&
)ですが、複数行があるため、1行、単一の段落方法を探しています。知っていることがありますか?
答え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"
本当に避けたい場合は、トップレベルのシェル演算子を使用しません。
答え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