2012-03-29 19 views
6

Desidero inviare l'output di pipe e stdin a pipe in bash.Come concatenare lo stdin in una pipe?

cioè:

gen_input | cat - | parse_input_and_stdin 

sarebbe inviare l'output di gen_input a parse_input_and_stdin e poi lasciare stdin aperta per l'input più interattivo.

risposta

9
cat <(gen_input) - | parse_input_and_stdin 
+0

Eccezionale! Grazie! –

+0

Questo è stato ottimo per testare il mio hook 'post-receive';) Poiché avevo bisogno di alimentarlo con' $ from', '$ to', e' $ branch' rispettivamente, ho fatto: 'cat <(git log -2 --format = oneline --reverse | awk '{print $ 1}' | tr '\ n' '') - | ./ganci/post-ricezione', fornendo inoltre il ramo digitandolo, quindi CTRL + D. Grande! ';)'. – branquito

+0

Molto utile! Questo mi ha aiutato ad alimentare un programma con alcuni input conosciuti, quindi continuare ad alimentarlo dallo stdin in modalità interattiva. Grazie questa bella gemma! –

14

Chiudi.

{ gen_input ; cat ; } | parse_input_and_stdin 
+0

funziona questo anche, ma ho scelto l'altro, perché funziona in modo più evidente. –

+0

Questo modulo semplifica tuttavia la concatenazione dell'output di più di due fonti. Continua ad aggiungerli tra i semi-colon. – Dologan

Problemi correlati