Zum Inhalt springen

Bash/Prozesssubstitution: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
In der Liste genannter Kommandos in einer Subshell starten
; Aufruf
; Aufruf
<syntaxhighlight lang="bash" highlight="1-2" line>
<syntaxhighlight lang="bash" highlight="1-2" line>
Zeile 7: Zeile 8:
>(Liste)
>(Liste)
</syntaxhighlight>
</syntaxhighlight>
auf, werden die durch Liste benannten Kommandos in einer Subshell gestartet.


Gleichzeitig wird die Ausgabe (>(...)) bzw. Eingabe (<(...)) der Kommandos mit einer automatisch erzeugten FIFO-Datei verbunden.
; Ein-/Ausgabe
Audgabe
(>(...))
Eingabe  
(<(...))  


Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei.
der Kommandos mit einer automatisch erzeugten FIFO-Datei verbunden
 
; FIFO-Datei
Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>
ls <(echo "hello")
ls <(echo "hello")
Zeile 17: Zeile 24:
</syntaxhighlight>
</syntaxhighlight>


; Beispiel
Mithilfe der Prozesssubstitution könnte man den vi dazu bewegen, die Ausgaben eines Kommandos zu lesen
Mithilfe der Prozesssubstitution könnte man den vi dazu bewegen, die Ausgaben eines Kommandos zu lesen
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" line copy>

Version vom 11. Oktober 2025, 14:36 Uhr

Bash/Prozesssubstitution - Ein-/Ausgabe von Prozessen mit einer FIFO-Datei verbinden

Beschreibung

In der Liste genannter Kommandos in einer Subshell starten

Aufruf
<(Liste)
>(Liste)
Ein-/Ausgabe

Audgabe

(>(...))

Eingabe (<(...))

der Kommandos mit einer automatisch erzeugten FIFO-Datei verbunden

FIFO-Datei

Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei

ls <(echo "hello")
 /dev/fd/63
Beispiel

Mithilfe der Prozesssubstitution könnte man den vi dazu bewegen, die Ausgaben eines Kommandos zu lesen

vi <(ls /boot/vm*)
 /boot/vmlinuz
 /boot/vmlinuz.old
 ~
  
 ~
 "/dev/fd/63" [fifo/socket] 2L, 32C
                                        1,1            All
Bestandsaufnahme laufender Prozesse
diff <(ps ax) <(sleep 10; ps ax)
 64d63
 <  2129 pts/0    S      0:00 /bin/bash
 67,68c66
 <  2132 pts/0    R      0:00 ps ax
 <  2133 pts/0    S      0:00 sleep 10
 ---
 >  2134 pts/1    S      0:00 top
 >  2135 pts/0    R      0:00 ps ax

Im Beispiel ist der Prozess top neu hinzugekommen, dass die Aufrufe der Kommandos ps und sleep erscheinen, war zu erwarten

Und abschließend vergleichen wir die Inhalte zweier Archive

 '''diff <(tar tzf Buch1.tar.gz) <(tar tzf Buch.tar.gz)'''
 325a326,328
 > Images/tkinfo.gif
 > Images/GlobaleVariable.gif
 > Images/LokaleVariable.gif

Innerhalb der Klammern

 >(...)
 <(...)

können Parameter- Kommando- sowie arithmetische Substitutionen benutzt werden

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks