Usa echo
, aggiungerà automaticamente una nuova riga:
echo "`curl -s "http://myserver.com/api?param=1¶m=2"`" | sudo tee -a /var/log/myserver.log
In alternativa, puoi provare il -w
opzione, ma ho scoperto che in qualche modo stampa caratteri divertenti sulla console (ma non sul file, fortunatamente):
curl -s "http://myserver.com/api?param=1¶m=2" -w "\n" | sudo tee -a /var/log/myserver.log
Il più semplice è semplicemente aggiungere una nuova riga usando echo
curl -s "http://myserver.com/api?param=1¶m=2" | sudo tee -a /var/log/myserver.log && echo "" >> /var/log/myserver.log
Uso awk 1
per questo (dove 1
è solo qualcosa che restituisce true):
$ printf a|awk 1
a
$ printf a\\n|awk 1
a
$
Dovrebbe funzionare con gawk, BWK awk / nawk (fornito con OS X) e mawk (fornito con Debian). sed -n p
funziona con sed di OS X ma non con GNU sed.
Un'alternativa solo per Bash:
printf %s\\n "$(cat)"
Nota che $()
rimuove tutti gli avanzamenti di riga dalla fine, quindi ad esempio echo $'a\n\n'|printf %s\\n "$(cat)"
stampa solo un avanzamento riga.
Puoi anche sostituire printf %s\\n
con echo
, ma ad esempio x=-nene;echo "$x"
non stampa nulla in Bash (a meno che xpg_echo
e la modalità POSIX sono abilitate).