Для печати значений в разных строках скрипта оболочки тела письма

Для печати значений в разных строках скрипта оболочки тела письма

Ниже приведен код для печати содержимого файлов, имеющихся в каталоге. Содержимое файлов:

apple 
banana 
grapes 
mango

имена=()

FILES=/path_to_dir/*
for f in $FILES
do
   names+=($f)
done
result="$(cat ${names[@]})"
echo "$result"

echo "The  names are "$result"" | mailx -s "names are " [email protected]

для этого я получаю ниже вывод для переменной результата

apple 
banana 
grapes 
mango

Однако когда я печатаю «$result» в письме, я получаю следующий вывод в тексте письма:

apple banana grapes mango

Я хочу отправлять имена по электронной почте с помощью нескольких строк, например:

apple 
banana 
grapes 
mango

Как добиться того же?

решение1

Попробуйте сecho -e "The names are:\n" "$result"

Опция -eдопускает \nинтерпретацию знака новой строки; тогда переменная будет развернута правильно, имея собственные двойные кавычки.

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