В bash это дает результат в ожидаемом порядке:
ruby -e "puts 'one'; raise 'two'"
one
-e:1:in `<main>': two (RuntimeError)
Но если я перенаправляю STDERR в STDOUT, я получаю сообщение об ошибке перед выводом, чего мне не нужно:
ruby -e "puts 'one'; raise 'two'" 2>&1 | cat
-e:1:in `<main>': two (RuntimeError)
one
Я хочу перенаправить вывод в текстовый файл (он ведет себя так же, как cat
выше) и получите как вывод, так и исключения, но в том же порядке, что и при просмотре вывода в моем терминале. Можно ли этого достичь?