Ngay bây giờ tôi đang sử dụng exec để chuyển hướng stderr đến một bản ghi lỗi vớiNối văn bản để stderr chuyển hướng trong bash
exec 2>> ${errorLog}
Nhược điểm duy nhất là tôi phải bắt đầu mỗi lần chạy với timestamp từ exec chỉ đẩy văn bản thẳng vào tệp nhật ký. Có cách nào để chuyển hướng stderr nhưng cho phép tôi để thêm văn bản vào nó, chẳng hạn như một dấu thời gian?
$ foo() {while IFS = '' read-line; làm echo "$ (date) $ line" >> file.txt; làm xong; }; $ exec 2>> (foo) Cảnh báo: Chương trình '/ bin/bash' gặp sự cố. whoops – Peter
Nhưng nếu tôi thay đổi thành: echo 2 | tee> (foo), sau đó nó hoạt động tốt. – Peter
Trong câu hỏi, mỗi dòng được nối vào một tệp đã được mở. Trong câu trả lời, tệp nhật ký được mở cho mỗi dòng. Và tìm kiếm đến cuối tập tin cũng cần thiết. Nó có thể là tốt hơn để làm một 'exec' thứ hai trong' foo'. – ceving