Wenn ich die Ausgabe eines Befehls in eine Datei umleite (z. B. echo Hello > file
), wird sichergestellt, dass diese Datei diese Daten unmittelbar nach dem Beenden des Befehls enthält? Oder gibt es immer noch ein sehr kleines Fenster zwischen den Befehlsexits und den in die Datei geschriebenen Daten? Ich möchte die Datei direkt nach dem Beenden des Befehls lesen, möchte aber keine leere Datei lesen.
echo
und >
nicht getrennte (kurzlebige) Prozesse? Und wo wird die Ausgabe echo
vonrest >
ausgeführt?
>
ist die Shell-Umleitung. Es ist dasselbe, als hätte das Programm die genannte Datei zum Schreiben geöffnet und durch stdout ersetzt, was genau das ist, was die Shell tut.
file
Containing zu geben , Hello
unabhängig davon, ob es gespült wird oder nicht.