sudoとかのsh -cで使うechoで改行を出力する

sudoとかのsh -cで使うechoで改行を出力したくなりました。
echoのみであれば\nを使えば改行されます。

$ echo "[Service]\nLimitNOFILE=1006500\nLimitNPROC=1006500"

リダイレクトで書き出しを行いたかったのでsh -cに渡したのですが改行されません。

$ sudo sh -c 'echo "[Service]\nLimitNOFILE=1006500\nLimitNPROC=1006500" '
[Service]\nLimitNOFILE=1006500\nLimitNPROC=1006500

バックスラッシュを重ねてもダメ。

$ sudo sh -c 'echo "[Service]\\nLimitNOFILE=1006500\\nLimitNPROC=1006500" '
[Service]\nLimitNOFILE=1006500\nLimitNPROC=1006500

調べたところ-eオプションを使えばOKでした。

$ sudo sh -c 'echo -e "[Service]\\nLimitNOFILE=1006500\\nLimitNPROC=1006500"'
[Service]
LimitNOFILE=1006500
LimitNPROC=1006500

参考

シェアする

  • このエントリーをはてなブックマークに追加

フォローする