Bash/Prozesssubstitution: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
(18 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
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> | |||
<(Liste) | |||
>(Liste) | |||
</syntaxhighlight> | |||
=== 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 | |||
; FIFO-Datei | |||
Auf der Kommandozeile erscheint nach erfolgter Substitution der Name der erzeugten FIFO-Datei | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
ls <(echo "hello") | |||
/dev/fd/63 | /dev/fd/63 | ||
</syntaxhighlight> | |||
; Beispiel | |||
Mithilfe der Prozesssubstitution könnte man den vi dazu bewegen, die Ausgaben eines Kommandos zu lesen | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
vi <(ls /boot/vm*) | |||
/boot/vmlinuz | /boot/vmlinuz | ||
/boot/vmlinuz.old | /boot/vmlinuz.old | ||
~ | ~ | ||
~ | ~ | ||
"/dev/fd/63" [fifo/socket] 2L, 32C | "/dev/fd/63" [fifo/socket] 2L, 32C | ||
1,1 All | 1,1 All | ||
</syntaxhighlight> | |||
; Bestandsaufnahme laufender Prozesse | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
diff <(ps ax) <(sleep 10; ps ax) | |||
64d63 | 64d63 | ||
< 2129 pts/0 S 0:00 /bin/bash | < 2129 pts/0 S 0:00 /bin/bash | ||
Zeile 31: | Zeile 77: | ||
> 2134 pts/1 S 0:00 top | > 2134 pts/1 S 0:00 top | ||
> 2135 pts/0 R 0:00 ps ax | > 2135 pts/0 R 0:00 ps ax | ||
</syntaxhighlight> | |||
Im Beispiel ist der Prozess top neu hinzugekommen, dass die Aufrufe der Kommandos ps und sleep erscheinen, war zu erwarten | 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 | |||
<syntaxhighlight lang="bash" highlight="1" line copy> | |||
'''diff <(tar tzf Buch1.tar.gz) <(tar tzf Buch.tar.gz)''' | '''diff <(tar tzf Buch1.tar.gz) <(tar tzf Buch.tar.gz)''' | ||
325a326,328 | 325a326,328 | ||
Zeile 41: | Zeile 88: | ||
> Images/GlobaleVariable.gif | > Images/GlobaleVariable.gif | ||
> Images/LokaleVariable.gif | > Images/LokaleVariable.gif | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Innerhalb der Klammern | |||
<syntaxhighlight lang="bash" highlight="1-2" line> | |||
>(...) | |||
<(...) | |||
<syntaxhighlight lang="bash" highlight="1" line | |||
</syntaxhighlight> | </syntaxhighlight> | ||
können Parameter- Kommando- sowie arithmetische Substitutionen benutzt werden | |||
=== Problembehebung === | === Problembehebung === | ||
Zeile 108: | Zeile 132: | ||
==== Weblinks ==== | ==== Weblinks ==== | ||
[[Kategorie:Bash/Expansionen]] | |||
[[Kategorie: | |||
</noinclude> | </noinclude> | ||
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