Am 12.07.2018 um 23:38 schrieb Uwe Koloska:
Du hast zwar bereits deine Anforderung um 180° umgedreht und aus "Die
Datei soll nicht geschrieben werden, wenn es keinen Input gibt" zu "Die
bestehende Datei soll nicht überschrieben werden, wenn es keinen Input
gibt", aber der folgende Ansatz liefert doch eine interessante Lösung
für beide Problemstellungen.

Am 12.07.2018 um 16:29 schrieb Rene Terlecki:
allerdings habe ich auch schon folgenden Ansatz versucht
..... | xargs --no-run-if-empty --null > file
Heiko hat ja schon darauf hingewiesen, dass Die Datei trotzdem zum
Schreiben geöffnet und daher geleert wird, bevor überhaupt irgendein
Prozess der Pipe läuft.

   echo "non empty file" > non-empty-file.txt
   echo "" | xargs --no-run-if-empty > non-empty-file.txt

Aber damit fehlt dir doch nur noch ein Baustein: Was könnte xargs
*nicht* starten, wenn der Eingang der Pipe keinen Input liefert.

Und da wären wir bei einer schicken Lösung für beide Probleme, denn die
Datei wird weder überschrieben noch angelegt:

   echo "non empty file" > non-empty-file.txt
   echo "" | xargs --no-run-if-empty tee non-empty-file.txt

Hallo,

der Ansatz mit tee war vielversprechend, doch leider funktioniert er bei mir nicht denke, dass tee keinen Input mehr hat, der angezeigt und in eine Datei geschrieben werden kann

Danke
Rene

Antwort per Email an