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

3

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

Quando uso a seguinte linha no script, o email é enviado corretamente com a formatação correta:

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

No entanto, quero agora anexar vários arquivos ao email. Eu modifiquei a linha para isso:

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

Note que ${i} é o destinatário do email nas duas 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 ou qualquer coisa.

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

    
por user3756852 16.10.2014 / 22:27

1 resposta

1

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

command1  &&
command2

Bem, às vezes, novas linhas não nomeadas 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 dizer apenas

cat ${log}

?

    
por 17.10.2014 / 00:20