AKI*_*WEB 9 unix linux email shell solaris
echo "Total items: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Error: `echo $QUERY1 | awk '{print $2}'`"
echo "Percentage: $QUERY2"
Run Code Online (Sandbox Code Playgroud)
如何使用单个电子邮件发送这三件事mail command
.因此,每当我收到任何电子邮件时,邮件正文应如下所示,每行应该有一个echo语句 -
Total items:- Some Number
Total Error:- Some Number
Percentage:- Some Number
Run Code Online (Sandbox Code Playgroud)
我在跑步 SunOS
bash-3.00$ uname -a
SunOS lvsaishdc3in0001 5.10 Generic_142901-02 i86pc i386 i86pc
Run Code Online (Sandbox Code Playgroud)
she*_*ter 20
你的要求并不完全清楚,但试试这个
{
echo "Total items: `echo $QUERY1 | awk '{print $1}'`"
echo "Total Error: `echo $QUERY1 | awk '{print $2}'`"
echo "Percentage: $QUERY2"
} | mail -s "subject" toUser1@xyz.com,toUser2@abc.com
Run Code Online (Sandbox Code Playgroud)
该{ .. }
对创建一个进程组,所有std-output重定向到1 |
(管道),连接到邮件程序的std-in.
您可能需要使用mailx
,-s
指定主题,我从您关于此主题的其他问题中看到您似乎理解的内容.
还sendmail
需要运行并正确配置从您执行此脚本的计算机传递的任何邮件.
IHTH
编辑:2015-11-07
刚刚得到一个"好回答"的明星,并且在审核时,我很惊讶我没有评论过度使用流程.对于这种情况,这可以减少到一次调用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" toUser1@xyz.com,toUser2@abc.com
Run Code Online (Sandbox Code Playgroud)
或者对于单行人群;-),就是这样
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" toUser1@xyz.com,toUser2@abc.com
Run Code Online (Sandbox Code Playgroud)
在{ .. }
不需要在这种情况下,只有一个连接到所述管的过程.
对于像每天发送一次的摘要报告这样的情况,原始代码是完全可用的(但不是最佳的).但是,非最佳编码会导致不良习惯.当一个循环在一天中运行1000次的循环中调用5个进程时,将不必要地消耗计算资源.
最后,由于op不包含任何样本数据,因此只对代码进行了轻微测试.
归档时间: |
|
查看次数: |
26573 次 |
最近记录: |