Como encriptar o código de verificação da fila? [duplicado]

1

Este código de script verifica se a fila de mensagens postfix está vazia e, se for verdadeira, desconecta meu modem.

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

Eu preciso executá-lo muitas vezes, conforme necessário, até que a fila de mensagens fique vazia.

Como posso fazer um loop?

Talvez colocando um else que retorne para executar o script na linha de postqueue -p | grep empty ?

Sei que pode ser simples, mas não sou especialista demais em scripts bash, por isso preciso de ajuda para concluir esse código.

    
por nerdhacker 09.11.2011 / 20:36

3 respostas

4
#!/bin/bash
while ! postqueue -p | grep -q empty; do
    sleep 1
done
killall wvdial
    
por 09.11.2011 / 20:53
2

É isso que você está procurando?

while postqueue -p | grep -q empty; do
    killall wvdial
    sleep 1
done
    
por 09.11.2011 / 20:44
1

Esse código funciona ainda melhor (pois é mais rápido em filas grandes):

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

E observe que essa pergunta é uma cópia de sua pergunta própria .

    
por 09.11.2011 / 22:21