Použijte echo
, automaticky připojí nový řádek:
echo "`curl -s "http://myserver.com/api?param=1¶m=2"`" | sudo tee -a /var/log/myserver.log
Případně můžete zkusit -w
možnost, ale zjistil jsem, že to nějak vytiskne vtipné znaky do konzole (ale ne do souboru, naštěstí):
curl -s "http://myserver.com/api?param=1¶m=2" -w "\n" | sudo tee -a /var/log/myserver.log
Nejjednodušší je přidat nový řádek pomocí echo
curl -s "http://myserver.com/api?param=1¶m=2" | sudo tee -a /var/log/myserver.log && echo "" >> /var/log/myserver.log
Používám awk 1
pro to (kde 1
je jen něco, co se vyhodnotí jako pravda):
$ printf a|awk 1
a
$ printf a\\n|awk 1
a
$
Mělo by to fungovat s gawk, BWK awk / nawk (který je součástí OS X) a mawk (který je součástí Debianu). sed -n p
funguje s OS X sed, ale ne s GNU sed.
Alternativa pouze pro Bash:
printf %s\\n "$(cat)"
Všimněte si, že $()
odebere všechny řádky od konce, takže například echo $'a\n\n'|printf %s\\n "$(cat)"
vytiskne pouze jeden posun řádku.
Můžete také nahradit printf %s\\n
s echo
, ale například x=-nene;echo "$x"
nevytiskne nic v Bash (kromě xpg_echo
a režim POSIX jsou povoleny).