我正在尝试编写一个perl脚本,通过电子邮件发送我在第一个参数中提供的任何内容,但我需要电子邮件正文有多行。当我将文本传递给脚本时(使用MIME :: Lite,fyi),电子邮件正文只有一行,因为我在脚本中传递的“\ n”似乎没有在电子邮件正文中转换为换行符。 / p>
这是一个例子
脚本简介内容:
my $message = $ARGV[0];
#blah blah
sendEmail $message;
调用脚本时的命令示例
sendEmail.pl "Issue: CPU usage is high \n Time: 11:20AM \n"
我需要什么:
Issue: CPU issue
Time: 12:00AM
我得到了什么:
Issue: CPU issue \n Time: 12:00AM \n
即使我只想打印输出print "$message"
中的字符串,我也会获得相同的输出。
如何强制perl考虑\ n传递给它的字符,以便在看到该字符时将内容移动到下一行?
答案 0 :(得分:6)
perl
这看起来不像是一个问题,它是您输入的bash
命令的问题。在bash
中输入以下字符串文字时:
"Issue: CPU usage is high \n Time: 11:20AM \n"
bash
不会将\n
字符序列解释为换行符。你需要一个不同的语法。您可以使用以下任一方法:
# bash
sendEmail.pl $'Issue: CPU usage is high\nTime: 11:20AM\n'
或
# bash or sh
sendEmail.pl 'Issue: CPU usage is high
Time: 11:20AM
'