2012-07-02 103 views
1

我發現對郵件命令的調用導致腳本無誤地掛起。要關閉腳本,我必須ctrl-c或在進程ID上發出kill命令。Shell腳本掛在郵件命令上

腳本的有關章節低於:

EMAIL_TO="[email protected]" 

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

還要求在UNIX/linux:http://unix.stackexchange.com/q/42145/4667 –

回答

6

man mail

發送郵件
將消息發送給一個或更多的人,郵件可以用論據是誰的郵件將被髮送的人的名字被調用。然後你需要輸入你的信息,然後在行首。以下部分回覆或始發郵件描述了可用於幫助您撰寫信件的一些郵件功能。

它期待消息的正文。使用<C-d>作爲換行符,並用空行結束消息,並使用<C-d>。另外,您可以供給人體和管道命令

echo "This is the body" | mail -s "Subject" "[email protected]" 

mail -s "Subject" "[email protected]" <<< "This is the body" 

或者你可以從文件中讀取身體..

mail -s "Subject" "[email protected]" < body_in_file.txt 
+1

bash有一個「這裏字符串」功能:'郵件主題收件人<<<「這是正文」' –

+0

更新爲包含您的解決方案,格倫。 – Conner