2015-09-10 65 views
0

如何發送電子郵件,其中「Hello world!」出現在第一行,「測試運行」出現在第二行。我試過\ r \ n和\ n。是否有任何方法可以一行一行地堆疊線路?命令行中的行分隔符

echo "Hello world! \r\n Test run" | mail -s "Test" [email protected] 

電子郵件應被視爲類似:

世界,你好!

試運行

+1

'echo $'foo \ nbar''至少在bash中起作用。 – melpomene

回答

0

使用echo -e。從手冊中:

如果給出-e選項 ,則會啓用對以下反斜線轉義字符的解釋。 [...]

# echo -e "Hello world! \r\n Test run" 
Hello world! 
Test run 

在bash你也可以使用$'string':是經過特殊處理的形式$ '字符串' 的

詞。該字擴展爲 爲字符串,反斜槓轉義字符被替換爲ANSI C標準中指定的字符。

# echo $'Hello world! \r\n Test run' 
Hello world! 
Test run 
1

如果你想超過二,三線,你也可以使用下面的語法:

mail -s "Test" [email protected] << EOF 

然後鍵入您的郵件,最後一個只EOF在其線;它將允許您在多行上輸入文本作爲單個「邏輯」命令行。 (嘗試瀏覽命令行的歷史記錄之後,您將理解我的意思是「一個邏輯命令行」。