Сценарий оболочки + Mutt: Mutt завершается цикл
У меня проблема с Mutt, преждевременно выходящим из цикла while в моем сценарии оболочки. При чтении цикла MAILTO моей функции sendFiles будет обрабатывать (отправлять) только первый файл, а затем возвращать. Однако, если я закомментирую '/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
в конце вашего запроса дурака
Пример:
/usr/bin/mutt -s "Your file" -a $MAILTO -- $MAILTO < /dev/null