Câu trả lời:
Cách dễ nhất có lẽ là gửi tee
tin nhắn đến thiết bị xuất chuẩn cũng như thiết bị xuất chuẩn:
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
tee
sao chép đầu vào của nó tới nhiều đích, bao gồm cả thiết bị xuất chuẩn. Theo mặc định, cả stderr và stdout đều đi đến màn hình; bạn đang chuyển hướng stdout sang Mail
, chỉ để stderr đi đến màn hình.
Nếu bạn cần nó trong thiết bị xuất chuẩn vì một số lý do, bạn có thể chuyển hướng nó trở lại bằng cách sử dụng một lớp con (hoặc một số cách khác):
(
echo "Script finished on date" | tee /dev/stderr \
| /usr/bin/Mail -s "Script complete" "myaccount@myserver.com"
) 2>&1
exec &> $LOGFILE
) và sau đó khôi phục thiết bị xuất chuẩn, đưa tệp đó vào thiết bị xuất chuẩn và gửi thư.