
estoy teniendo un problema conchuchosalir prematuramente de mi bucle while en mi script de shell. Elmientras lee MAILTObucle de mi funciónenviar archivossolo procesará (enviará) el primer archivo y luego regresará. Sin embargo, si comento '/usr/bin/mutt' de la función, todos los archivos en el directorio se procesan correctamente.
¿Alguien sabe por qué ocurre este comportamiento y cómo solucionarlo?
#!/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)
Respuesta1
Mutt entra en modo interactivo después de enviar un correo electrónico, esto te saca del bucle y agrega < /dev/null
al final de tu solicitud de mutt.
Ejemplo:
/usr/bin/mutt -s "Your file" -a $MAILTO -- $MAILTO < /dev/null