可能重复:
当postfix队列为空时断开调制解调器
此脚本代码检查postfix邮件队列是否为空,如果为true,则断开与调制解调器的连接。
#!/bin/sh postqueue -p|grep empty if [ $? -eq 0 ]; then killall wvdial fi
我需要多次运行它,直到邮件队列变空。
我怎样才能循环呢?
也许放置一个else从postqueue -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
注意这个问题是你自己问题的重复。