2012-03-29 28 views
6

Quiero enviar la salida de una tubería y stdin a una tubería en bash.¿Cómo concatenar stdin en una tubería?

es decir:

gen_input | cat - | parse_input_and_stdin 

sería enviar la salida de gen_input-parse_input_and_stdin y luego salir de la entrada estándar abierto para la entrada más interactivo.

Respuesta

9
cat <(gen_input) - | parse_input_and_stdin 
+0

¡Excepcional! ¡Gracias! –

+0

Esto fue genial para probar mi gancho 'post-receive';) Como necesitaba alimentarlo con' $ from', '$ to', y' $ branch' respectivamente, lo hice: 'cat <(git log -2 --format = oneline --reverse | awk '{print $ 1}' | tr '\ n' '') - | ./hooks/post-receive', adicionalmente suministrando branch tipeando, luego CTRL + D. ¡Estupendo! ';)'. – branquito

+0

¡Muy útil! Esto me ayudó a alimentar un programa con algunos datos conocidos y luego continuar alimentándolo desde el programa en un modo interactivo. Gracias esta bonita joya! –

14

Cerrar.

{ gen_input ; cat ; } | parse_input_and_stdin 
+0

funciona esto también, pero he elegido el otro, ya que funciona más evidente. –

+0

Sin embargo, este formulario simplifica la concatenación de la salida de más de dos fuentes. Solo sigue agregándolos entre punto y coma. – Dologan