Отправка содержимого файла в одном письме () - PullRequest
0 голосов
/ 11 мая 2018

Я простая программа, читающая содержимое файла, и если найдены определенные имена, мне нужно отправить только эти слова по электронной почте. Часть электронной почты отправляет отдельные электронные письма на каждой итерации, а не объединяет все в одну.

Chokeberry
Hawthorn
Loquat
Medlar
Pear

Это часть кода

file="/home/rkelly/Downloads/names.txt"
while IFS=, read -ra names; do
    printf "%s\n" "${names[@]}"

    for ((i=0; i < ${#fields[@]}; i++)); do
        srvnm=`echo ${hostname:0:3} | tr [a-z] [A-Z]`
        curdtm=$(date)
        subject= "Hello"
        echo "${fields[i]}" |mailx -s "$subject $curdtm" -a "$logpathfile" -r $srvnm $eml01
        done   
    done < "$file" 

Я хочу получить результаты в одном письме, сейчас я получаю 5 отдельных писем.

1 Ответ

0 голосов
/ 11 мая 2018

Переместить команду mailx за пределы цикла.

file="/home/rkelly/Downloads/names.txt"
srvnm=`echo ${hostname:0:3} | tr [a-z] [A-Z]`
curdtm=$(date)
subject="Hello"
content=""
while IFS=, read -ra names; do
    printf "%s\n" "${names[@]}"
    for ((i=0; i < ${#fields[@]}; i++)); do
        content=$content'\n'${fields[i]}
    done   
done < "$file"
mailx -s "$subject $curdtm" -a "$logpathfile" -r $srvnm $eml01 $content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...