yêu cầu của bạn không hoàn toàn rõ ràng, nhưng cố gắng này
{
echo "Total items: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Error: `echo $QUERY1 | awk '{print $2}'`"
echo "Percentage: $QUERY2"
} | mail -s "subject" [email protected],[email protected]
các { .. }
cặp tạo ra một nhóm quá trình, và tất cả std-đầu ra được chuyển hướng vào 1 |
(đường ống), kết nối với chương trình thư của bạn.
Bạn có thể cần sử dụng mailx
, -s
chỉ định chủ đề mà tôi thấy từ câu hỏi khác của bạn về chủ đề này mà bạn có vẻ hiểu.
Ngoài ra sendmail
sẽ cần phải chạy và được định cấu hình đúng cách cho bất kỳ thư nào được gửi từ máy mà bạn thực thi tập lệnh này.
IHTH
Chỉnh sửa: 2015-11-07
Chỉ cần có một ngôi sao 'câu trả lời đẹp' cho điều này, và trên trên xem xét, Tôi ngạc nhiên mà tôi đã không nhận xét về việc sử dụng quá nhiều quy trình. Đối với trường hợp này, điều này có thể được giảm đến một cuộc gọi đến awk
, tức là
awk -v q1="$QUERY1" -v q2="$QUERY2" \
'END {
split(q1,q1arr)
print "Total items: " q1arr[1] \
"Total Error: " q1arr[2] \
"Percentage: " q2
}' /dev/null \
| mail -s "subject" [email protected],[email protected]
Hoặc cho đám đông một liner ;-), đó là
awk -v q1="$QUERY1" -v q2="$QUERY2" 'END {split(q1,q1arr);print "Total items: " q1arr[1] "\nTotal Error: " q1arr[2] "\nPercentage: " q2 }' /dev/null | mail -s "subject" [email protected],[email protected]
Các { .. }
không cần thiết trong việc này trường hợp, vì chỉ có một quá trình kết nối với đường ống.
Đối với trường hợp như báo cáo tóm tắt được gửi mỗi ngày một lần, mã ban đầu hoàn toàn có thể sử dụng được (nhưng không tối ưu). Tuy nhiên, mã hóa không tối ưu dẫn đến thói quen xấu. Gọi 5 quá trình khi một trong những sẽ đủ trong một vòng lặp chạy 1000 lần trong một ngày, sẽ tiêu thụ tài nguyên tính toán không cần thiết.
Cuối cùng, như là o.p. không bao gồm bất kỳ dữ liệu mẫu nào, mã chỉ được kiểm tra một cách nhẹ nhàng.
Bạn không thể đưa nó vào tệp tmp và chỉ cần nhấn vào đó? –
tất cả các câu lệnh echo này đều có trong kịch bản lệnh shell của tôi và từ kịch bản lệnh shell đó, tôi chỉ cần truyền ba câu lệnh echo này trong một email duy nhất. – AKIWEB
có thể trùng lặp của [Gửi email đến nhóm email bằng cách sử dụng tập lệnh shell] (http://stackoverflow.com/questions/11875036/send-an-email-to-a-email-group-using-shell-script) – tripleee