FreeBSD: como executar repetidamente um comando no shell?

Com a necessidade de executar um shell script repetidas vezes no console do FreeBSD para fazer o monitoramento da temperatura dos processadores de um servidor enquanto executava a ferramenta de benchmark chamada ubench (utilizada pra fazer teste de estresse de CPU e memória RAM) e após diversas buscas improdutivas no Google (99% das soluções apresentadas que encontrei eram baseadas no bash, porém o shell padrão do FreeBSD é o csh ou tcsh) resolvi olhar diretamente na documentação do FreeBSD.

Infelizmente a documentação oficial do FreeBSD é bastante deficitária com relação à isto, situação bem incomum em um sistema operacional com tão vasta documentação. A única página que encontrei que poderia atender à minha necessidade foi esta.

Me baseando nas fracas informações da página da documentação encontrei um site que explicava (também superficialmente) como executar repetidamente um comando no shell do FreeBSD.

Um exemplo que encontrei foi:

Executando o mesmo comando n vezes (comando repeat):

No caso do exemplo acima, a frase “Teste de repeticao!” será apresentada 100 vezes.

Caso a necessidade seja de executar um comando infinitas vezes, porém com um intervalo de tempo entre as execuções (comando forever)

Ou então pode-se utilizar o comando repeat das seguintes formas (reproduzindo o mesmo resultado dos exemplos anteriores):

Note que o comando repeat aceita três parâmetros, sendo eles:

  1. Quantidade de repetições (se informado -1, o terceiro parâmetro será executadas infinitas vezes);
  2. Intervalo entre cada repetição (por padrão é 0, ou seja, sem intervalo entre execuções);
  3. Comando a ser executado.

Vale um aviso importante: O comando watch, reiteradamente encontrado nas minhas pesquisas do Google sobre este assunto, tem finalidade completamente diferente no csh/tsh do FreeBSD! Ou seja, nem perca seu tempo tentando usar o watch! O comando while também não funciona… 😉

Deixe uma resposta