( GNU bash,版本 4.2.50(1)-release (powerpc-ibm-aix6.1.2.0))
(
echo "a"
echo "b"
echo "c"
)| sendmail -F "Sender" [email protected]
这在 .sh 文件内运行,日志(使用 -x 选项运行时)显示 sendmail
之前的 .sh文件echo "c"
。
我正在尝试调试为什么 sendmail 偶尔会失败。由于子shell和sendmail并行运行,sendmail是否有可能不等待整个子shell结束,而只使用部分输出,直到echo b
继续发送不完整的电子邮件然后失败? (虽然 stderr 中没有错误消息,但对于某些执行,电子邮件只是神秘地没有出现在我的收件箱中)
有关更多上下文:我上面写的 echo 命令只是占位符,我实际上正在尝试准备一封电子邮件,如本答案所示https://stackoverflow.com/a/3335377/11521011并将其通过管道传递给sendmail
答案1
您尚未使用-i
insendmail
的命令行选项。
如果没有它,sendmail
则将“仅单点行”视为消息结尾。