Como posso manter quebras de linha no corpo do texto com mailx ao enviar anexos?

Como posso manter quebras de linha no corpo do texto com mailx ao enviar anexos?

Eu tenho um script que envia por e-mail o texto de um arquivo de log como corpo do e-mail. Esse arquivo de log possui algumas linhas em branco entre as linhas de texto para facilitar a leitura.

Quando uso a seguinte linha no script, o e-mail é enviado corretamente com a formatação adequada:

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

No entanto, agora quero anexar vários arquivos ao email. Modifiquei a linha para isto:

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

Observe que ${i}é o destinatário do email em ambas as linhas.

Então, agora o e-mail envia bem com os anexos, mas o corpo da mensagem é apenas um grande bloco de texto sem quebras de linha nem nada.

Eu não escrevi a linha mailx corretamente? Existe uma maneira de fazer com que a formatação persista no corpo da mensagem?

Responder1

Novas linhas sem aspas nas linhas de comando são tratadas como espaços; é por isso que você pode dizer coisas como

comando 1  &&
comando 2

Bem, às vezes novas linhas não citadas são tratadas como ponto e vírgula. Mas, quando você diz

echo `cat ${log}`

todas as novas linhas no arquivo de log são transformadas em espaços. Você poderia consertar isso dizendo

echo "`cat ${log}`"

mas por que não apenas dizer

cat ${log}

?

informação relacionada