シェル スクリプト + 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

< /dev/nullMuttは電子メールを送信した後、対話モードに入ります。これにより、Muttリクエストの最後にループが追加されなくなります。

例:

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

関連情報