我想之前我發的郵件內容格式,下面是我的代碼,如何發送格式的郵件正文的Unix腳本
echo "Time: `$TIMESTAMP_CMD\n\n$EMAIL_BODY" | mail -s "$EMAIL_SUBJECT" ${EMAIL_DIST}
TIMESTAMP_CMD
,EMAIL_BODY
,EMAIL_SUBJECT
和EMAIL_DIST
是這在上面這段代碼中定義的變量。
在這裏,我需要在TIMESTAMP_CMD和EMAIL_BODY之間換行。如何實現它?
我想之前我發的郵件內容格式,下面是我的代碼,如何發送格式的郵件正文的Unix腳本
echo "Time: `$TIMESTAMP_CMD\n\n$EMAIL_BODY" | mail -s "$EMAIL_SUBJECT" ${EMAIL_DIST}
TIMESTAMP_CMD
,EMAIL_BODY
,EMAIL_SUBJECT
和EMAIL_DIST
是這在上面這段代碼中定義的變量。
在這裏,我需要在TIMESTAMP_CMD和EMAIL_BODY之間換行。如何實現它?
使用
printf "Time: $TIMESTAMP_CMD\n\n$EMAIL_BODY"
而且你使用它調用shell
的echo
背打勾。但似乎$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)"
如果您選擇使用echo
,那麼你可以使用-e
開關,使反斜線的解釋轉義像echo -e "Time: $TIMESTAMP_CMD\n\n$EMAIL_BODY"
。您可以參考手冊頁或此link以獲取更多信息。正如前面指出的那樣,當echo
ing時,請擺脫反向(`)。
希望這有助於!
+1,但我認爲backtick不是無關的。相反,關閉backtick丟失,OP希望printf「時間:%s \ n \ n%s」「$($ TIMESTAMP_CMD)」「$ EMAIL_BODY」 – 2012-02-15 12:39:33
@William謝謝。我應該猜到了。更新了我的答案。 – 2012-02-15 12:47:50