Repetir o mesmo comando várias vezes no shell

Por vezes queremos acompanhar a cópia de um arquivo na console do Linux e o caminho mais normal é abrir um outro terminal e ficar repetitivamente executando o comando ls, ou algum outro comando, haja dedo para apertar a seta pra cima e enter, seta pra cima e enter, seta pra cima e enter, coisa bem chatinha esta, sem contar o fato de encher o histórico de comandos com linhas repetidas, dificultando encontrar um comando feito anteriormente.

Podemos resolver isto usando o comando while de forma bem simples, por exemplo se quisermos executar um ls por várias vezes, podemos fazer assim:

while true; do ls; done;

Isto vai executar o comando ls até pressionarmos CTRL + C para quebrá-lo, entretanto o comando desta forma, não terá muita utilidade, pois vai mostrar o resultado do ls e em seguida fazer outro ls e assim sucessivamente, logo o resultado será ilegível para humanos normais, digamos assim.

Para resolver podemos dar uma pequena pausa entre cada iteração do while valendo-se do comando sleep. No exemplo que segue, vamos executar o comando ls, aguardar 10 segundos (sleep 10) e executar novamente o ls e depois a pausa novamente e assim por diante.

while true; do ls; sleep 10; done;

Agora já temos um resultado mais interessante e podemos apenas observar o que esta acontecendo, economizando bastante tecladas !!!

Por fim, para deixar o coisa mais bonita, podemos usar o comando clear para limpar a tela antes de executar novamente o ls, ai nosso resultado será bem legível para humanos normais. 😉

Veja como ficou nosso comando agora:

while true; do ls; sleep 10; clear; done;

18 comentários sobre “Repetir o mesmo comando várias vezes no shell”

Deixe uma resposta