Você pode usar este forro para fazer o que está perguntando:
$ cmd="..some command..."; for i in $(seq 5); do $cmd; sleep 1; done
Exemplo
$ date
Fri Nov 22 01:37:43 EST 2013
$ cmd="echo"; for i in $(seq 5); do $cmd "count: $i"; sleep 1;done
count: 1
count: 2
count: 3
count: 4
count: 5
$ date
Fri Nov 22 01:37:51 EST 2013
Você pode ajustar o sleep ...
para o atraso que quiser entre os comandos e alterar cmd=...
para o comando que quiser.
Expansões de contraventamentos vs. seq cmd
Você também pode usar expansões de chaves em vez do comando seq
para gerar intervalos de valores. Isso é um pouco mais eficiente, já que as expansões de chaves serão executadas no mesmo shell que o loop for
. Usar o subshell ( $(seq ..)
) é um pouco menos eficiente, já que está gerando um subshell dentro dos limites do shell que o loop for
está executando.
Exemplo
$ cmd="echo"; for i in {1..5}; do $cmd "count: $i"; sleep 1;done
count: 1
count: 2
count: 3
count: 4
count: 5