Você só precisa testar se o valor de x
pode ser dividido por 10:
for x in {0..100} ; do
if (( x % 10 == 0 ))
then
/tmp/run.sh
fi
sleep 1
done
precisamos executar o run.sh em cada 10 etapas
for x in {1..100} ; do
sleep 1
/tmp/run.sh
done
então, finalmente, o run.sh será executado 10 vezes
como podemos fazer isso?
outro exemplo (neste caso o run.sh será executado 20 vezes)
for x in {1..200} ; do
sleep 1
/tmp/run.sh
done
Este é um trabalho para o módulo
operador ( %
). Por exemplo:
for x in {1..100} ; do
sleep 1
[ $((x % 10)) -eq 0 ] && /tmp/run.sh
done
Outro exemplo:
$ for i in {1..100} ; do [ $((i % 10)) -eq 0 ] && echo $i ; done
10
20
30
40
50
60
70
80
90
100
for (( i = 0; i < 10; ++i )); do
/tmp/run.sh
sleep 10
done
Se você quiser executar o script dez vezes, faça o loop dez vezes e durma a quantidade adequada de tempo entre elas.
Ou com um parâmetro que determina quantas vezes executar o script:
n=20
for (( i = 0; i < n; ++i )); do
/tmp/run.sh
sleep 10
done
Tags bash linux shell-script