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
参考

echoコマンドで改行やタブを扱うには@Linux bash : Mazn.net
UNIX系OSでも最も有名な部類に入るコマンドechoは、引数の文字列や変数の中身を表示することができます。つまりCでいうprintf、JAVAでいうSystem.out.printlnみたいなものですね。 # echo "hoge" ho...


コメント