Tôi biết cách chuyển hướng đến một tập tin và sử dụng tee; ở mức độ cơ bản. Vì thế
$ alias outanderr='bash -c "echo stdout >&1; echo stderr >&2"'
# A fake "application" displaying both output and error messages.
$ outanderr 1>file # redirect stdout to a file, display stderr
stderr
$ outanderr 2>file # redirect stderr to a file, display stdout
stdout
$ outanderr 1>file 2>&1 # redirect both to a file, display nothing
$ outanderr | tee file; echo "-- file contents --" && cat file
# redirect stdout to a file, display both (note: order is messed up)
stderr
stdout
-- file contents --
stdout
$ outanderr 2>&1 | tee file; echo "-- file contents --" && cat file
# redirect both to a file, display both
stdout
stderr
-- file contents --
stdout
stderr
Câu hỏi là: viết gì thay cho các dấu hỏi để có đầu ra bên dưới:
$ outanderr ???; echo "-- file contents --" && cat file
# redirect both to a file, display stderr
stderr
-- file contents --
stdout
stderr
Các hằng số:
- Giả sử bash.
- Thứ tự nên được giữ trong tập tin.
- nội dung stderr được hiển thị theo từng dòng thời gian thực, tức là không có bộ đệm.
- Tập tin tập lệnh riêng biệt có thể được sử dụng.
- Phép thuật có thể là cần thiết.
outanderr
chỉ là một bí danh in một dòng thành thiết bị xuất chuẩn và một dòng khác cho thiết bị xuất chuẩn. Ý tưởng (nếu có thể) là xây dựng một giải pháp chung có thể hoạt động với bất kỳ chương trình nào, mà không sửa đổi chúng.
outanderr
chương trình?