Sie werden parallel ausgeführt, wenn sie dazu in der Lage sind. Der tee
Befehl führt die Eingabe zu beiden Befehlen, sobald er sie erhält. Dadurch werden sie "betriebsbereit", wenn sie bei der Eingabe blockiert wurden, und das Betriebssystem plant sie auf den verfügbaren Kernen ein. Dies ist kein Multithreading, da dies innerhalb eines Prozesses erfolgt. Dies ist ein Multiprozess-Vorgang.
linux pipeline / tee prozessablauf
Ich denke, für den Linux-Befehl wird die Pipeline: $ command1 | command2 | command3
mit der Reihenfolge Befehl1 -> Befehl2 -> Befehl3 ausgeführt.
Aber was ist mit dem Abschlag: $ command1 | tee >(command2) >(command3)
Da das command2
und command3
die gleiche Eingabe haben, lautet meine Frage, wird ausgeführt command2
und command3
parallel ausgeführt (Multithread?) Oder in der Reihenfolge 2-> 3?
Vielen Dank.
2 Antworten auf die Frage
Versuchen Sie, diesen Befehl auszuführen (Strg-C nach einiger Zeit):
(od -x /dev/urandom | tee >(sed 's/^/1 /') >(sed 's/^/2 /')) > /tmp/output
/ tmp / output wird verschachtelt und überschrieben, wenn jeder Prozess die Möglichkeit hat, ausgeführt zu werden.
Auch wenn Sie "mit Sequenz ausführen" sagen, ist das falsch. Ich denke, DOS verwendete man, um Pipelines mit temporären Dateien zu simulieren, aber nicht mit Unix.
(Ich habe die Syntax> () noch nie gesehen. Lernen Sie jeden Tag etwas Neues!)
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4