如何循环队列检查代码?

可能重复:
当postfix队列为空时断开调制解调器

脚本代码检查postfix邮件队列是否为空,如果为true,则断开与调制解调器的连接。

#!/bin/sh postqueue -p|grep empty if [ $? -eq 0 ]; then killall wvdial fi 

我需要多次运行它,直到邮件队列变空。

我怎样才能循环呢?

也许放置一个elsepostqueue -p | grep空行返回执行脚本?

我知道这可以是简单的,但不是在bash脚本的专家,所以我需要帮助来完成这个代码。

 #!/bin/bash while ! postqueue -p | grep -q empty; do sleep 1 done killall wvdial 

这是你在找什么?

 while postqueue -p | grep -q empty; do killall wvdial sleep 1 done 

这个代码工作得更好(因为它在大队列上更快):

 while [ `find /var/spool/postfix/{deferred,active,maildrop}/ -type f | wc -l` -gt 0 ]; do sleep 5 done killall wvdial 

注意这个问题是你自己问题的重复。