Ich habe folgendes einfaches Beispiel, von denen ich verstehe nicht, wie es mit dem Ausgang kommt:Bash Ausgang in Funktion nicht wie erwartet
#!/bin/bash
function wtf() {
echo -e "test1" >&1
sleep 2
echo -e "test2" >&1
}
a=$(wtf)
echo $a
Die Ausgabe auf dem Terminal ist nach 2 Sekunden test1 test2
Wenn ich die letzten beiden Zeilen nur zu wtf
ändern, dann ist der Ausgang
test1
test2 #after 2 seconds
- Wh y ist in der ersten Version der
test1 test2
in der gleichen Zeile? - Warum benötigt der Ausgang der Zeile
test1 test2
2 Sekunden, um anzuzeigen, nur die zweitetest2
sollte nach 2 Sekunden angezeigt werden?
Thx für die Klärung, gibt es eine Möglichkeit, auf die stdout sowieso in der Funktion zu drucken? – wasp256
'stdout' wird von der Subshell erfasst, also nein, das geht nicht. Sie könnten jedoch mit 'echo test3> & 2' auf' stderr' drucken. – janos
Das hat funktioniert – wasp256