En bash, esto da la salida en el orden esperado:¿Por qué la salida STDERR de Ruby aparece antes de la salida STDOUT anterior cuando se redirige?
ruby -e "puts 'one'; raise 'two'"
one
-e:1:in `<main>': two (RuntimeError)
Pero si puedo redirigir STDERR a STDOUT, me sale el error antes de la salida, que no quiero:
ruby -e "puts 'one'; raise 'two'" 2>&1 | cat
-e:1:in `<main>': two (RuntimeError)
one
Quiero redirigir la salida a un archivo de texto (se comporta de la misma manera que en el cat
anterior) y obtener salidas y excepciones, pero en el mismo orden que cuando miro la salida en mi terminal. ¿Se puede lograr esto?
STDEER siempre se imprime en la corriente, mientras que la salida estándar generalmente se tampona a imprimir. –