script shell + mutt: mutt terminando enquanto loop

1

Estou tendo um problema com mutt saindo do meu loop while prematuramente no meu shell script. O loop while read MAILTO da minha função sendFiles processará (enviará) 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)
    
por Van 12.03.2014 / 19:58

1 resposta

0

Mutt entra no modo interativo depois de enviar um e-mail, isso quebra você no loop e adiciona < /dev/null no final do seu pedido de mutt

Exemplo:

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

    
por Askel 08.05.2014 / 21:18