我只有在stdout中有任何内容时才需要发送电子邮件。现在我发送的邮件每隔10分钟发送一次这样的邮件,即使脚本没有返回任何内容:
/root/script.sh|mail -s topic my@mail.com
如何在null stdout上跳过发送邮件?
答案 0 :(得分:7)
我发现了更好的解决方案。对邮件命令使用-E选项,如果正文为空,则不会发送电子邮件。邮件手册说明如下。
-E Do not send messages with an empty body. This is useful for
piping errors from cron(8) scripts.
就这样。
/root/script.sh|mail -E -s topic my@mail.com
答案 1 :(得分:2)
您可以尝试:
message=$(/root/script.sh) && [[ ! -z "$message" ]] && mail -s topic my@mail.com <<< "$message"
含义:
script.sh
的输出存储到变量message