可能重复:
当 Postfix 队列为空时断开调制解调器
此脚本代码检查 Postfix 邮件队列是否为空,如果为空则断开我的调制解调器。
#!/bin/sh
postqueue -p|grep empty
if [ $? -eq 0 ]; then
killall wvdial
fi
我需要根据需要运行它多次,直到邮件队列变空。
我怎样才能循环播放它?
也许放置一个别的返回执行脚本的行postqueue -p|grep 为空?
我知道它可以很简单,但是我对 Bash 脚本并不是很熟悉,所以我需要帮助来完成这个代码。
答案1
#!/bin/bash
while ! postqueue -p | grep -q empty; do
sleep 1
done
killall wvdial
答案2
这就是你要找的东西吗?
while postqueue -p | grep -q empty; do
killall wvdial
sleep 1
done
答案3
此代码运行得更好(因为它在大型队列上运行得更快):
while [ `find /var/spool/postfix/{deferred,active,maildrop}/ -type f | wc -l` -gt 0 ]; do
sleep 5
done
killall wvdial
请注意,这个问题与您的问题重复自己的问题。