Am 12.07.2018 um 14:50 schrieb Heiko Schlittermann:
Jochen Topf <[email protected]> (Do 12 Jul 2018 09:09:49 CEST):
Die Lösung ist relativ einfach mit einem externen Programm zu erledigen,
das quasi wie "cat" funktioniert, also Daten einfach durchleitet, aber
die Ausgabedatei selbst aufmacht und zwar erst dann, wenn zum ersten Mal
Daten ankommen. Ich weiß von keinem Programm, dass das macht, aber es
ist auch nicht schwierig, sowas zu schreiben.
#!/bin/bash
read || exit
test $# = 1 && exec 1>"$1"
printf '%s\n' "$REPLY"
exec cat
--
Heiko
Danke für die Ansätze
mein aktueller Stand ist
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
allerdings habe ich auch schon folgenden Ansatz versucht
..... | xargs --no-run-if-empty --null > file
ich wollte gern auf zusätzliche Abhängigkeiten wie Shellfunktionen oder
andere Skripte verzichten
ciao
Rene