通过电子邮件发送差异输出和电子邮件正文

emailing diff output and email body

我的 Bash 脚本中有以下代码。如何在电子邮件中添加正文? 示例:正文:输出

diff -q file1 file2 || diff file1 file2 | mail -s "subject" "email@email.com"

假设您有一个 mail 程序可以理解 -a 附加文件,例如 s-nail 或 mailx,

if ! diff -q file1 file2; then
    diff file1 file2 > something.diff
    echo 'body' | mail -s 'subject' -a something.diff 'email@email.com'
    rm -f something.diff
fi

您可以使用 Bash 的进程替换来避免临时文件

diff -q file1 file2 || echo 'body' | mail -s 'subject' -a <(diff file1 file2) 'email@email.com'

但是附件的文件名只是一些随机数。

这是我做的

difference=` diff file1 file2 >/dev/null || diff file1 file2`
   if [ -n "$difference" ]; then
mail -s " subject " "address" <<EOF
     Body here

     $difference

      Body here

  EOF
 fi