Trong bash, điều này sẽ cho kết quả theo thứ tự dự kiến:Tại sao đầu ra STDERR từ Ruby đến trước đầu ra STDOUT trước đó khi chuyển hướng?
ruby -e "puts 'one'; raise 'two'"
one
-e:1:in `<main>': two (RuntimeError)
Nhưng nếu tôi chuyển hướng thiết bị lỗi chuẩn để STDOUT, tôi nhận được lỗi trước khi đầu ra, mà tôi không muốn:
ruby -e "puts 'one'; raise 'two'" 2>&1 | cat
-e:1:in `<main>': two (RuntimeError)
one
Tôi muốn chuyển hướng đầu ra đến một tập tin văn bản (nó hoạt động theo cùng một cách như cat
ở trên) và có được cả đầu ra và ngoại lệ, nhưng theo thứ tự như khi nhìn vào đầu ra trong thiết bị đầu cuối của tôi. Điều này có thể đạt được?
STDEER luôn in vào trong dòng khi STDOUT thường đệm được in. –