我发现对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?"
Run Code Online (Sandbox Code Playgroud)
运行时,我看到文本"接下来发送邮件......",仅此而已.它永远不会返回提示.
我可以看到脚本仍然在内存中使用ps -ax | grep myscript.sh.
我已尝试使用主题和电子邮件的引号,并再次没有.无论哪种方式都产生相同的结果.
我究竟做错了什么?
来自man mail:
发送邮件
要向一个或多个人发送邮件,可以使用参数调用邮件,这些参数是邮件将被发送到的人员的姓名.然后,您需要输入消息,然后在行的开头输入."回复"或"始发邮件"下面的部分介绍了可用于帮助您撰写信函的一些邮件功能.
它期待着信息的一部分.使用<C-d>了新行,并最终以一个空行的消息和<C-d>.或者,您可以为命令提供主体和管道......
echo "This is the body" | mail -s "Subject" "recipient@example.com"
Run Code Online (Sandbox Code Playgroud)
要么
mail -s "Subject" "recipient@example.com" <<< "This is the body"
Run Code Online (Sandbox Code Playgroud)
或者你可以从文件中读取身体..
mail -s "Subject" "recipient@example.com" < body_in_file.txt
Run Code Online (Sandbox Code Playgroud)