Como executo um programa X vezes no terminal?
Eu li que tenho que fazer um bin/bash txt, mas não sei como executar isso X vezes.
Responder1
Responder2
Abra um Terminal e use o seguinte bash
comando:
for i in {1..5}; do xdotool click 1; done
Com um pouco de verbosidade e atraso de 1s:
for i in {1..5}; do echo click \#$i && xdotool click 1 && sleep 1; done
click #1
click #2
click #3
click #4
click #5
Responder3
Isso deve fazer:
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
x=$(( $x + 1 ))
done
onde 10 é o número de vezes para executar o comando
se você precisar fazer uma pequena pausa:
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
sleep 1
x=$(( $x + 1 ))
done
Copie o script em um arquivo vazio, substitua <command to run>
pelo seu xdotool
comando, salve-o como run_xdotool.sh
e execute-o pelo comando:
sh /path/to/run_xdotool.sh
Alternativamente, você pode torná-lo executável e simplesmente executá-lo
/path/to/run_xdotool.sh
Outra solução: usando a opção de repetição integrada do xdotool
Como você mencionou usá-lo para clicar, o mais fácil seria usar xdotool
a própria opção de repetição integrada. O formato é:
xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)
Para fazer 10 cliques do mouse (botão 1) seguidos, com um segundo de intervalo, o comando é:
xdotool click --delay 1000 --repeat 10 1
Responder4
Você pode usar um loop estilo C for
que tem a vantagem sobre a versão de expansão de chaves ( {1..5}
) de poder usar variáveis para especificar os pontos finais. Qualquer uma das versões é melhor do que usar um utilitário externo ( seq
).
t=5
for ((x = 1; x <= t; x++))
do
xdotool click 1
done
Tudo em uma linha:
t=5; for ((x = 1; x <= t; x++)); do xdotool click 1; done
Ou você pode fazer isso sem um loop (para este utilitário e função específicos):
xdotool click --repeat 5 --delay 50 1