2012-03-29 9 views
6

Ich möchte die Ausgabe einer Pipe und Stdin an eine Pipe in bash senden.Wie stdin in eine Pipe verketten?

D.h.:

gen_input | cat - | parse_input_and_stdin 

würde die Ausgabe von gen_input-parse_input_and_stdin senden und dann stdin für mehr interaktive Eingabe offen lassen.

Antwort

9
cat <(gen_input) - | parse_input_and_stdin 
+0

Hervorragend! Vielen Dank! –

+0

Dies kam gut zum Testen meiner 'post-receive'-Hook;) Da ich es mit' $ from', '$ to' und' $ branch' jeweils füttern musste, tat ich: 'cat <(git log -2 --format = oneline --reverse | awk '{print $ 1}' | tr '\ n' '') - | ./hooks/post-receive', liefert zusätzlich Branch durch Eingabe, dann CTRL + D. Groß! ';)'. – branquito

+0

Sehr nützlich! Dies half mir, ein Programm mit einigen bekannten Eingaben zu füttern und es dann von der Standardeingabe in einem interaktiven Modus fortzusetzen. Danke dieses schöne Juwel! –

14

Schließen.

{ gen_input ; cat ; } | parse_input_and_stdin 
+0

Dies funktioniert auch, aber ich wählte die andere, weil es offensichtlich funktioniert. –

+0

Dieses Formular vereinfacht jedoch die Verkettung der Ausgabe von mehr als zwei Quellen. Fügen Sie sie einfach zwischen Semikolons hinzu. – Dologan

Verwandte Themen