2012-02-15 65 views
0

我想之前我發的郵件內容格式,下面是我的代碼,如何發送格式的郵件正文的Unix腳本

echo "Time: `$TIMESTAMP_CMD\n\n$EMAIL_BODY" | mail -s "$EMAIL_SUBJECT" ${EMAIL_DIST} 

TIMESTAMP_CMDEMAIL_BODYEMAIL_SUBJECTEMAIL_DIST是這在上面這段代碼中定義的變量。

在這裏,我需要在TIMESTAMP_CMD和EMAIL_BODY之間換行。如何實現它?

回答

2

使用

printf "Time: $TIMESTAMP_CMD\n\n$EMAIL_BODY" 

而且你使用它調用shellecho背打勾。但似乎$TIMESTAMP_CMD擁有一個shell命令。所以,你會想這樣的事情,

printf "Time: `$TIMESTAMP_CMD`\n\n$EMAIL_BODY" 
# or 
printf "Time: $($TIMESTAMP_CMD)\n\n$EMAIL_BODY" 
# or 
printf "Time: %s\n\n$EMAIL_BODY" "$($TIMESTAMP_CMD)" 
+1

+1,但我認爲backtick不是無關的。相反,關閉backtick丟失,OP希望printf「時間:%s \ n \ n%s」「$($ TIMESTAMP_CMD)」「$ EMAIL_BODY」 – 2012-02-15 12:39:33

+0

@William謝謝。我應該猜到了。更新了我的答案。 – 2012-02-15 12:47:50

2

如果您選擇使用echo,那麼你可以使用-e開關,使反斜線的解釋轉義像echo -e "Time: $TIMESTAMP_CMD\n\n$EMAIL_BODY"。您可以參考手冊頁或此link以獲取更多信息。正如前面指出的那樣,當echo ing時,請擺脫反向(`)。
希望這有助於!

相關問題