python -c 'import time; print(1); time.sleep(1); print(2)
⇒ 1 wird angezeigt und nach einer Weile wird 2 angezeigt.
sh -c 'echo 1; sleep 1; echo 2'
⇒ 1 wird angezeigt und nach einer Weile wird 2 angezeigt.
python -c 'import time; print(1); time.sleep(1); print(2) | tee /dev/null
⇒ Nach einer Weile werden 1 und 2 gleichzeitig angezeigt
sh -c 'echo 1; sleep 1; echo 2' | tee /dev/null
⇒ 1 wird angezeigt und nach einer Weile wird 2 angezeigt.
Python ist intelligent. Wenn also stdout und stderr Terminals sind, puffern sie die Zeile, andernfalls puffern sie normal. (Wenn Sie viel ausgeben, ist die Pufferung überwiegend schneller.)
Python macht es übrigens selbst, so dass der Befehl stdbuf
sein Verhalten nicht ändern kann.
python -u -c 'import time; print(1); time.sleep(1); print(2) | tee
⇒ 1 wird angezeigt und nach einer Weile wird 2 angezeigt.
Recommended Posts