
Estou tendo um problema comvira-latasaindo do meu loop while prematuramente no meu script de shell. Oenquanto lê MAILTOloop da minha funçãoenviar arquivosprocessará (enviará) apenas o primeiro arquivo e depois retornará. No entanto, se eu comentar '/usr/bin/mutt' da função, todos os arquivos no diretório serão processados corretamente.
Alguém sabe por que esse comportamento está ocorrendo e como corrigi-lo?
#!/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)
Responder1
Mutt entra no modo interativo depois de enviar um e-mail, isso tira você do loop adicionado < /dev/null
no final de sua solicitação mutt
Exemplo:
/usr/bin/mutt -s "Your file" -a $MAILTO -- $MAILTO < /dev/null