您的需求並不完全清楚,但嘗試這個
{
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]
的{ .. }
對創建一個進程組,並且所有STD-輸出重定向到1 |
(管道),它連接到你的郵件程序的標準輸入。
您可能需要使用mailx
,-s
指定主題,我從您對此主題的其他問題中看到您似乎瞭解。
另外sendmail
將需要運行並正確配置爲從您執行此腳本的機器發送的任何郵件。
IHTH
編輯:2015年11月7日
就得到了這樣的「好回答」明星,以及關於審查,我很驚訝,我沒有評論過度使用流程。對於這種情況,這可以減少到一個呼叫awk
,即
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]
或爲一個班輪人羣;-),這是
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]
將在此不需要{ .. }
情況,因爲只有一個過程連接到管道。
對於每天發送一次總結報告的情況,原始代碼是完全可用的(但非最佳)。但是,編碼非最優導致不良習慣。當一個人能夠在一天內運行1000次的循環中調用5個進程時,會不必要地消耗計算資源。
最後,作爲o.p.沒有包含任何樣本數據,只是對代碼進行了輕微測試。
你不能管它到一個tmp文件,只是管嗎? – 2012-08-09 01:55:59
所有這些echo語句都在我的shell腳本中,並且來自該shell腳本,我只需要在一封電子郵件中傳遞這三個echo語句。 – AKIWEB 2012-08-09 01:57:18
[使用shell腳本向電子郵件組發送電子郵件]的可能副本(http://stackoverflow.com/questions/11875036/send-an-email-to-a-email-group-using-shell-script) – tripleee 2012-08-09 03:40:33