Ruby:
Ghi vào lỗi chuẩn
Làm thế nào:
Trong Ruby, bạn có thể ghi vào lỗi chuẩn sử dụng $stderr.puts hoặc phiên bản viết tắt STDERR.puts. Dưới đây là một ví dụ nhanh:
puts "Điều này sẽ đến đầu ra chuẩn."
$stderr.puts "Điều này sẽ đến lỗi chuẩn."
# Phiên bản viết tắt:
STDERR.puts "Điều này cũng sẽ đến lỗi chuẩn."Mở terminal của bạn, chạy script và chú ý cách mọi thứ vẫn xuất hiện cùng nhau theo mặc định. Cần phải chuyển hướng để tách các luồng. Dưới đây là cách bạn có thể làm điều đó:
ruby your_script.rb >output.txt 2>error.txtLệnh này chuyển hướng đầu ra chuẩn tới output.txt và lỗi chuẩn tới error.txt.
Đào sâu
Khái niệm stderr trở về những ngày đầu tiên của Unix. Nó được thiết kế cho thông báo lỗi, đảm bảo chúng hiện hữu ngay cả khi stdout được chuyển hướng. Mặc dù $stderr.puts và STDERR.puts là phổ biến trong Ruby, có những cách khác để viết vào stderr, như sử dụng warn để viết cảnh báo hoặc các API cấp thấp hơn như $stderr.write. Về mặt triển khai, stderr theo mặc định là không đệm, đảm bảo đầu ra ngay lập tức, trong khi stdout thường được đệm.
Xem thêm
- Tài liệu Ruby về I/O: https://ruby-doc.org/core-3.1.2/IO.html
- Các Đặc điểm Cơ bản của Nhóm Mở (luồng chuẩn UNIX): https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html
- Hiểu về chuyển hướng script Shell: https://www.gnu.org/software/bash/manual/html_node/Redirections.html