скрипт оболочки + mutt: mutt завершает цикл while

скрипт оболочки + mutt: mutt завершает цикл while

У меня проблема сдворнягапреждевременный выход из цикла while в моем скрипте оболочки.во время чтения MAILTOцикл моей функцииОтправить файлыобработает (отправит) только первый файл и затем вернётся. Однако, если я закомментирую '/usr/bin/mutt' из функции, все файлы в каталоге будут обработаны правильно.

Кто-нибудь знает, почему происходит такое поведение и как его исправить?

#!/bin/sh
# sendReports.sh

# sendFiles function    
sendFiles ()
{
  cd $1
  ls -1 *@* | while read MAILTO
  do
    echo "Emailing file: $MAILTO"
    /usr/bin/mutt -s "Your file" -a $MAILTO -- $MAILTO
    rm -f $MAILTO
  done
}

# .... later in the life of this script ....
sendFiles /tmp/reports

# (end of file)

решение1

Mutt переходит в интерактивный режим после отправки электронного письма, это выводит вас из цикла, добавьте < /dev/nullв конец вашего запроса Mutt

Пример:

/usr/bin/mutt -s "Your file" -a $MAILTO -- $MAILTO < /dev/null

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