¿Cómo ejecuto un programa X veces en el terminal?
Leí que tengo que hacer un bin / bash txt, pero no sé cómo ejecutar esto X veces.
command-line
usuario3597989
fuente
fuente
Respuestas:
Puedes usar
xargs
yseq
. En general:Por ejemplo:
ejecutará el
xdotool click 1
comando por 10 veces.fuente
Abra una Terminal y use el siguiente
bash
comando:Con un poco de verbosidad y 1s de retraso:
fuente
$
. Solo está ahí para indicar un indicador de shell comosylvain@sylvain-ThinkPad-T430s:~$
. Por lo general, lo agregamos a las respuestas de la línea de comandos para diferenciar el comando de sus resultados.Esto debería hacer:
donde 10 es el número de veces que se ejecuta el comando
Si necesita construir en un pequeño descanso:
Copie el script en un archivo vacío, reemplácelo
<command to run>
por suxdotool
comando, guárdelo comorun_xdotool.sh
, ejecútelo por el comando:Alternativamente, puede hacerlo ejecutable y simplemente ejecutarlo
Otra solución: usar la opción de repetición integrada de xdotool
Como menciona usarlo para hacer clics, lo más fácil podría ser usar
xdotool
la opción de repetición incorporada. El formato es:Para hacer 10 clics del mouse (botón 1) seguidos, un segundo en el medio, el comando es:
fuente
Si tiene GNU Parallel puede ejecutar:
Todas las computadoras nuevas tienen múltiples núcleos, pero la mayoría de los programas son de naturaleza serial y por lo tanto no usarán los múltiples núcleos. Sin embargo, muchas tareas son extremadamente paralelizables:
GNU Parallel es un paralelizador general y hace que sea fácil ejecutar trabajos en paralelo en la misma máquina o en múltiples máquinas a las que tiene acceso ssh.
Si tiene 32 trabajos diferentes que desea ejecutar en 4 CPU, una forma directa de paralelizar es ejecutar 8 trabajos en cada CPU:
GNU Parallel genera un nuevo proceso cuando uno termina, manteniendo las CPU activas y ahorrando así tiempo:
Instalación
Una instalación personal no requiere acceso de root. Se puede hacer en 10 segundos haciendo esto:
Para otras opciones de instalación, consulte http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Aprende más
Ver más ejemplos: http://www.gnu.org/software/parallel/man.html
Mira los videos de introducción: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Recorre el tutorial: http://www.gnu.org/software/parallel/parallel_tutorial.html
Regístrese en la lista de correo electrónico para obtener asistencia: https://lists.gnu.org/mailman/listinfo/parallel
fuente
parallel -N0 doit ::: {1..10}
{1..10}
no funciona en (t) csh / fish / ash, y la{1..10}
construcción está limitada por la longitud de la línea de comando, por lo que esto no funcionará:{1..1000000000}
mientrasseq 1000000000
que funcionará bien. Pero para la mayoría de las situaciones{1..10}
funcionará como se espera, y a menudo también lo uso.Puede usar un
for
bucle de 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
).Todo en una línea:
O podría hacerlo sin un bucle (para esta utilidad y función específica):
fuente
Simplemente puedes usar el comando watch:
cambie x al tiempo en segundos.
Ejemplo:
Entonces xdotool click 1 se repetirá cada 1 s, finalícelo cuando haya terminado.
fuente