Как сохранить переносы строк в тексте письма с помощью 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}

?

Связанный контент