Você pode usar xargs
e seq
. Geralmente:
seq nr_of_times_to_repeat | xargs -Iz command
Por exemplo:
seq 10 | xargs -Iz xdotool click 1
executará o comando xdotool click 1
por 10 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 este X vezes.
Abra um Terminal e use o seguinte comando bash
:
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
#!/bin/bash
x=1
while [ $x -le 10 ]
do
<command to run>
x=$(( $x + 1 ))
done
em que 10 é o número de vezes para executar o comando
se você precisar criar 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 comando xdotool
, salve-o como run_xdotool.sh
, execute-o pelo comando:
sh /path/to/run_xdotool.sh
Como alternativa, você pode torná-lo executável e simplesmente executá-lo por
/path/to/run_xdotool.sh
Como você mencionou o uso para cliques, o mais fácil pode ser usar a opção de repetição interna do próprio xdotool
. O formato é:
xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)
Para fazer 10 cliques do mouse (botão 1) em uma linha, um segundo entre eles, o comando é:
xdotool click --delay 1000 --repeat 10 1
Se você tem o GNU Parallel, você pode executar:
seq 10 | parallel -N0 doit
Todos os novos computadores têm vários núcleos, mas a maioria dos programas são de natureza serial e, portanto, não usam os vários núcleos. No entanto, muitas tarefas são extremamente paralelizáveis:
O GNU Parallel é um paralelizador geral e facilita a execução de trabalhos em paralelo na mesma máquina ou em várias máquinas para as quais você tem acesso ssh.
Se você tem 32 tarefas diferentes que você quer rodar em 4 CPUs, uma forma direta de paralelizar é rodar 8 tarefas em cada processador:
O
GNUParallelgeraumnovoprocessoquandoumtermina-mantendoasCPUsativaseeconomizandotempo:
Instalação
Uma instalação pessoal não requer acesso root. Isso pode ser feito em 10 segundos ao fazer isso:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Para outras opções de instalação, consulte o link
Saiba mais
Veja mais exemplos: link
Assista aos vídeos de introdução: link
Percorra o tutorial: link
Inscreva-se na lista de e-mail para obter suporte: link
Você pode usar um loop for
de estilo C que tem a vantagem sobre a versão de expansão de chave ( {1..5}
) de poder usar variáveis para especificar os pontos finais. Qualquer versão é melhor 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 talvez você possa fazer isso sem um loop (para esse utilitário e função específicos):
xdotool click --repeat 5 --delay 50 1
Você pode simplesmente usar o comando watch:
watch -n x <your command>
altere x para o tempo em segundos.
Exemplo:
watch -n 1 xdotool click 1
Então o xdotool click 1 será repetido a cada 1 s, terminado quando terminar.
Tags command-line