Dê a um while
loop uma condição booleana, como a seguir:
#!/bin/bash
while true; do
do_something && wait
done
Isso será executado repetidamente até que o bash receba um sinal para finalizar o processo. Geralmente na forma de ctrl+c
.
Você também pode usar o watch
comando para executar um script repetidamente também. Por exemplo, um relógio simples no seu terminal bash usando watch
pode se parecer com:
$ watch -t -n1 date +%T
A -t
opção informa watch
para não exibir um título do processo que está sendo executado. Isso fornece uma saída limpa apenas do comando que está sendo repetido. A -n1
opção informa ao relógio para repetir a cada n
segundo. Nesse caso, -n1
haverá intervalos de 1
segundo. Em seguida, o date +%T
comando mostra a hora no momento da conclusão do comando. Ao executar este comando, você terá um relógio ativo no seu terminal.
E então mais um método que não está em nenhuma das outras respostas seria uma chamada de função infinita.
do_something() { do_something }; do_something && wait
É essencialmente o mesmo que o while
loop booleano, usando apenas chamadas de função recursivas.
(edit) Para manter os recursos da sua máquina em mente, eu adicionei o && wait
para que, sempre que um processo for executado, os loops "aguardem" até que o processo termine com o status de saída 0 antes da próxima iteração. Isso é útil em um script de shell interativo.