发送附件时如何使用 mailx 保持正文中的换行符?

发送附件时如何使用 mailx 保持正文中的换行符?

我有一个脚本,可以通过电子邮件发送日志文件的文本作为电子邮件的正文。该日志文件的文本行之间有一些空白行,以提高可读性。

当我在脚本中使用以下行时,电子邮件可以正常发送并具有正确的格式:

cat ${log}|mailx -s "Email Subject Line" ${i} < ${log}

但是,我现在想在电子邮件中附加几个文件。我将该行修改为:

( echo `cat ${log}` ; uuencode ${file1} ${file1a} ; uuencode ${file2} ${file2a} ; uuencode ${file3} ${file3a} ) | mailx -m -s "Email Subject Line" ${i}

请注意,这${i}是两行中的电子邮件收件人。

因此,现在电子邮件可以正常发送附件,但邮件正文只是一大块文本,没有换行符或任何其他内容。

我是否没有正确编写mailx行?有没有办法让格式保留到消息正文中?

答案1

命令行中未加引号的换行符被视为空格;这就是为什么你可以这样说

命令1  &&
命令2

好吧,有时未引用的换行符会被视为分号。但是,当你说

echo `cat ${log}`

日志文件中的所有换行符都会变成空格。你可以通过说来解决这个问题

echo "`cat ${log}`"

但为什么不直接说

cat ${log}

相关内容