が、これは予想される順序で出力が得られます。リダイレクト時にSTDOUT出力が以前のSTDOUT出力より前に来るのはなぜですか? bashで
ruby -e "puts 'one'; raise 'two'"
one
-e:1:in `<main>': two (RuntimeError)
しかし、私はSTDOUTにSTDERRをリダイレクトする場合、私はしたくない出力、前にエラーが発生します。
ruby -e "puts 'one'; raise 'two'" 2>&1 | cat
-e:1:in `<main>': two (RuntimeError)
one
私は出力をテキストファイルにリダイレクトしたい(それは上記と同じように動作する)。出力と例外の両方を取得するが、端末の出力を見るのと同じ順序で行う。これは達成できますか?
STDEERは常にストリームに印刷されて行う必要があります。 –