Execute um comando a cada minuto para sempre usando 'date'

1

Estou procurando um caminho ( bash script ou outro) para executar um comando a cada minuto usando date - procurei soluções semelhantes, mas todas elas sugerem cron ou watch mas o que eu quero fazer é executar o comando de acordo com a saída de date para que eu possa fazer o comando rodar quando o ponteiro de segundos atingir 30, exemplo 12:50:30 12:51:30 12:52:30 12:53:30 ... qualquer ajuda será muito apreciada.

    
por Blake Angelo 02.11.2015 / 18:50

1 resposta

2
#!/bin/bash
until [[ $(date +%S) -eq 30 ]]
do
  sleep 0.75
done

while true
do
  #command & 
  #here your cmds should be forked to background to avoid delaying
  date +%S
  sleep 30
done

editar

como você queria ver a data +% S stdout e verificar se = 30 e executar algo!

#!/bin/bash
foo(){
  echo yay
  #add commands here
}
while true
do
  date +%S | grep '30' && foo 
  sleep 1
done

ou

#!/bin/bash
foo(){
  echo yay
  #add commands here
}
while true
do
  date +%S
  [[ $(date +%S) -eq 30 ]] && foo 
  sleep 1
done
    
por 02.11.2015 / 19:21