shell 脚本 + mutt:mutt 终止 while 循环

shell 脚本 + mutt:mutt 终止 while 循环

我遇到了问题杂种狗在我的 shell 脚本中过早退出 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

Mutt 在发送电子邮件后进入交互模式,这将使您脱离循环,并< /dev/null在 mutt 请求的末尾添加

例子:

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

相关内容