Rene Terlecki rene.terlecki@gmx.de (Do 12 Jul 2018 16:29:22 CEST):
v=$(......); [[ -n $v ]] && echo "$v" > file das ist übersichtlich und macht das, was es soll nur die Variable gefällt mir nicht, da man immer aufpassen muss, dass dadurch im Skript nicht irgendwas unerwartetes passiert
Was meinst Du genau? Das einzige, was Dir passieren kann, ist daß $v z.B. ein "-n" enthält, also eine Option, die echo versteht. Du könntest das lösen mit
printf '%s\n' "$v" oder cat <<<$v > file
allerdings habe ich auch schon folgenden Ansatz versucht ..... | xargs --no-run-if-empty --null > file
Da wird file wieder angelegt, bevor irgendwas los geht. Ansonsten ist das mit dem xargs schon interessant :)
-- Heiko