Ejecutar un programa X veces

Ejecutar un programa X veces

¿Cómo ejecuto un programa X veces en la terminal?

Leí que tengo que hacer un txt bin/bash, pero no sé cómo ejecutarlo X veces.

Respuesta1

Puedes usarxargsyseq. Generalmente:

seq nr_of_times_to_repeat | xargs -Iz command

Por ejemplo:

seq 10 | xargs -Iz xdotool click 1

ejecutará el xdotool click 1comando 10 veces.

Respuesta2

Abra una Terminal y use el siguiente bashcomando:

for i in {1..5}; do xdotool click 1; done

Con un poco de detalle y un retraso de 1 segundo:

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

Respuesta3

Esto debería hacer:

#!/bin/bash

x=1
while [ $x -le 10 ]
do
  <command to run>
  x=$(( $x + 1 ))
done

donde 10 es el número de veces que se ejecuta el comando

Si necesita hacer un pequeño descanso:

#!/bin/bash

x=1
while [ $x -le 10 ]
do
  <command to run>
  sleep 1
  x=$(( $x + 1 ))
done

Copie el script en un archivo vacío, reemplácelo <command to run>con su xdotoolcomando, guárdelo como run_xdotool.shy ejecútelo con el comando:

sh /path/to/run_xdotool.sh

Alternativamente, puede hacerlo ejecutable y simplemente ejecutarlo mediante

/path/to/run_xdotool.sh

Otra solución: usar la opción de repetición integrada de xdotool

Dado que mencionas usarlo para hacer clics, lo más fácil podría ser usar xdotoolla opción de repetición incorporada. El formato es:

xdotool click --delay <delay> --repeat <repeats> <button>
(delay in milliseconds between the clicks)

Para hacer 10 clics del mouse (botón 1) seguidos, con un segundo de intervalo, el comando es:

xdotool click --delay 1000 --repeat 10 1

Respuesta4

Puede usar un forbucle estilo C que tiene la ventaja sobre la versión de expansión de llaves ( {1..5}) de poder usar variables para especificar los puntos finales. Cualquiera de las versiones es mejor que usar una utilidad externa ( seq).

t=5
for ((x = 1; x <= t; x++))
do
    xdotool click 1
done

Todo en una sola línea:

t=5; for ((x = 1; x <= t; x++)); do xdotool click 1; done

O podrías hacerlo sin un bucle (para esta utilidad y función específica):

xdotool click --repeat 5 --delay 50 1

información relacionada