bash + linha de impressão a cada 10 min em bash

2

Eu quero imprimir por eco o seguinte "ainda em processo espere mais 10 min" a cada 10 min

Por favor, avise que condição precisa adicionar antes do comando echo para imprimir esta linha a cada 10 minutos?

Observação - aumento do contador em um ciclo a cada (1 segundo), eu não quero adicionar atraso adicional (comando sleep) para este script !!!!!

 Until   [    ]
 do
 Counter=1

 sleep 1

  let counter=$counter+1

  [ .... ] &&  echo " still in process wait another 10 min …."

 done 
    
por yael 11.06.2012 / 14:19

5 respostas

1

Adicione outro contador, e se isso atingir 600, chame echo e redefina o contador. Repita conforme necessário.

Então, algo assim deveria ser feito:

let echocounter=$echocounter+1
if [ $echocounter == 600 ]; then echo "still in process wait 10 min ..."; $echocounter=0; fi
    
por 11.06.2012 / 15:15
7

Use o operador de módulo (sintaxe específica do bash):

if [ $(($counter % 600)) -eq 0 ] ; then
  echo " still in process wait another 10 min .."
fi

Ou mais portável:

if [ 'expr $counter % 600' -eq 0 ] ; then
  echo " still in process wait another 10 min .."
fi
    
por 11.06.2012 / 15:17
1

O que você quer é algo assim:

#10 minutes from now
Increment_Timestamp=$(( $(date +%s) + 600 ))

while [  ...  ]
do
...
...
    # When now is 10 minutes ago, show the message.
    if [ $(date +%s) -lt "${Increment_Timestamp}" ]
    then
        ${Increment_Timestamp}=$(( $(date +%s) + 600 ))
        echo "Message"
    fi
done
    
por 11.06.2012 / 15:19
0

Adicionei alguma lógica para verificar a hora:

BOOL=true
MINUTES=$(date +"%M")
MINUTES=$(echo $MINUTES | sed 's/^0*//')

if $BOOL ; then
        BOOL=false

        if [ $MINUTES -le "49" ];then
                MINUTES10=$(($MINUTES+10))
        else
                MINUTES10=$(($MINUTES+50))
        fi
fi

if [ $MINUTES10 -eq $MINUTES ];then
        echo "message"
        BOOL=true
fi
    
por 11.06.2012 / 14:33
0

Você provavelmente quer o programa sleepenh , que permite "dormir com precisão". Há também uma postagem no blog sobre como ela foi usada para resolver um problema que não exigiu dormir demais

    
por 11.06.2012 / 15:30