我发现对mail命令的调用导致脚本暂停而没有错误。要关闭脚本,我必须ctrl-c或对进程ID发出kill命令。
脚本的相关部分如下:
EMAIL_TO="my@email.com"
if [ -f /www/archives/pdf/pdf_201207021048.tar ]; then
echo "file exists"
else
echo "file does not exist"
fi
echo "sending mail next..."
mail -s "pdfbackup" "$EMAIL_TO"
echo "mail sent?"
在运行时,我看到文本“接下来发送邮件......”,仅此而已。它永远不会返回提示。
我可以看到脚本仍然在内存中使用ps -ax | grep myscript.sh。
我尝试过使用主题和电子邮件的引号,而且没有。无论如何都会产生相同的结果。
我做错了什么?
答案 0 :(得分:6)
来自man mail
:
发送邮件
要向一个或多个人发送消息,可以使用参数调用邮件,这些参数是将向其发送邮件的人员的姓名。然后,您需要输入消息,然后在行的开头输入。 “回复”或“始发邮件”下面的部分介绍了可用于帮助您撰写信函的邮件功能。
它期待着一条信息。使用<C-d>
表示换行符,并使用空行和<C-d>
结束邮件。或者,您可以将命令和管道提供给命令...
echo "This is the body" | mail -s "Subject" "recipient@example.com"
或
mail -s "Subject" "recipient@example.com" <<< "This is the body"
或者你可以从文件中读取身体..
mail -s "Subject" "recipient@example.com" < body_in_file.txt