Zum Inhalt springen

Bash/Prozesssubstitution: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:


== Beschreibung ==
== Beschreibung ==
Taucht ein Konstrukt der Art
In ''Liste'' genannter Kommandos in einer Subshell starten
 
== Installation ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>
 
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1-2" line>
<syntaxhighlight lang="bash" highlight="1-2" line>
<(Liste)
<(Liste)
>(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.
=== Optionen ===
{| class="wikitable sortable options gnu big"
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}
 
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0  || Fehler
|}
 
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>
; Ein-/Ausgabe
Audgabe
(>(...))
Eingabe  
(<(...))
 
der Kommandos mit einer automatisch erzeugten FIFO-Datei verbunden


Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei.
; 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 53:
</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>
Zeile 59: Zeile 96:
</syntaxhighlight>
</syntaxhighlight>
können Parameter- Kommando- sowie arithmetische Substitutionen benutzt werden
können Parameter- Kommando- sowie arithmetische Substitutionen benutzt werden
=== Optionen ===
{| class="wikitable sortable options gnu big"
|-
! Unix !! GNU !! Parameter !! Beschreibung
|-
| || || ||
|-
|}
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
{| class="wikitable options col1center big"
|-
! Wert !! Beschreibung
|-
| 0 || Erfolg
|-
| >0  || Fehler
|}
== Anwendung ==
<syntaxhighlight lang="bash" highlight="1" line copy>
</syntaxhighlight>


=== Problembehebung ===
=== Problembehebung ===
Zeile 120: Zeile 132:
==== Weblinks ====
==== Weblinks ====


{{DEFAULTSORT:new}}
[[Kategorie:Bash/Expansionen]]
{{DISPLAYTITLE:new}}
 
[[Kategorie:new]]


</noinclude>
</noinclude>
[[Kategorie:Bash/Expansionen]]

Aktuelle Version vom 13. Oktober 2025, 09:50 Uhr

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

Beschreibung

In Liste genannter Kommandos in einer Subshell starten

Installation

Aufruf

<(Liste)
>(Liste)

Optionen

Unix GNU Parameter Beschreibung

Parameter

Umgebungsvariablen

Exit-Status

Wert Beschreibung
0 Erfolg
>0 Fehler

Anwendung

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

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks