Stdin zu datei schreiben?

2 Antworten

Die Frage ist ziemlich konfus. Du kannst stdin nur lesen und stdout nur schreiben.

Vermutlich kommst du durcheinander, weil in einer Pipe das stdout des ersten Programms zum stdin des zweiten wird.

Wenn du die Eingabe eines Programms mithören willst, muss das vor dem Programmaufruf passieren. Das Programm tee reicht seine Eingabe unverändert an die Ausgabe weiter, schreibt aber alles auch in eine Datei:

ls | tee protokoll | wc

macht dasselbe wie

ls | wc

und schreibt die Ausgabe von ls (=Eingabe von wc) in die Datei protokoll.

Laider ist die Frage in meinen Augen unverständlich. Wenn Du eien bidirektionale Kommunikation zwischen 2 Prozessen willst, dann ist das bei den meisten Shells mit unidirektionalen Pipes nicht so leicht umsetzbar, außer Du nimsmt vielleicht named pipes zu Hilfe.

Sonst könnte man sowas wie pipexec nutzen.

Die bash bietet für bestimmte Szenarien auch coprocesses an.

Cathouseshape 
Fragesteller
 06.05.2022, 04:37

Kommt auf die def von prozess an.

Ich versuche nicht 2 prozesse zu verbinden.

Sonderen beide teile eines prozesses zu bekommen

Bidirectional wäre eine gute idee, aber

Ich kann die data source nichtmal targeten

Stdin entfläucht meinem zugriff

Es wurde nicht gebaut um gelesen zu werden

Deshalb auch sys level, wenn nötig

Wenn ich als analogy sage

Var Kabel = stdin Datenstrom der nicht im file system ist, und vermutlich direkt iwo keyboard über 2 Ecken liest

Hätte ich gerne direkt zugriff auf dieses kabel, während das Programm läuft. [jedoch nur dieses Programm, sonst muss ich filtern/timen]

Auf jeden fall sehr hilfreich ^~^ ich werde die keywords mal abrabeiten und sehen ob sich etwas ergibt :)

0
KarlRanseierIII  06.05.2022, 05:03
@Cathouseshape

Naja, STDIN, STDOUT, STDERR sind halt Standard IO-Kanäle die typischerweise ihre entsprechenden Filedeskriptoren haben.

Wie sieht das hier:

Ich lese stdout zu > file zu > keyword listener zu > run scrypt

denn konkret aus?

Und geht es nicht einfacher?

0