2015-09-10 62 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在其线;它将允许您在多行上输入文本作为单个“逻辑”命令行。 (尝试浏览命令行的历史记录之后,您将理解我的意思是“一个逻辑命令行”。