Execute um programa X vezes

Execute um programa X vezes

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

Você pode usarxargseseq. Geralmente:

seq nr_of_times_to_repeat | xargs -Iz command

Por exemplo:

seq 10 | xargs -Iz xdotool click 1

executará o xdotool click 1comando 10 vezes.

Responder2

Abra um Terminal e use o seguinte bashcomando:

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 xdotoolcomando, salve-o como run_xdotool.she 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 xdotoola 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 forque 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

informação relacionada