GNU/Linux >> Tutoriales Linux >  >> Linux

¿Repetir un comando de Unix cada X segundos para siempre?

Hay un comando integrado de Unix repeat cuyo primer argumento es el número de veces que se repite un comando, donde el comando (con cualquier argumento) se especifica mediante los argumentos restantes para repeat .

Por ejemplo,

% repeat 100 echo "I will not automate this punishment."

repetirá la cadena dada 100 veces y luego se detendrá.

Me gustaría un comando similar, llamémoslo forever – que funciona de manera similar, excepto que el primer argumento es la cantidad de segundos de pausa entre repeticiones, y se repite para siempre. Por ejemplo,

% forever 5 echo "This will get echoed every 5 seconds forever and ever."

Pensé en preguntar si tal cosa existe antes de escribirlo. Sé que es como un script Perl o Python de 2 líneas, pero tal vez haya una forma más estándar de hacerlo. Si no es así, no dude en publicar una solución en su lenguaje de secuencias de comandos favorito.

PD:Tal vez una mejor manera de hacer esto sería generalizar repeat para tomar tanto la cantidad de veces que se repite (donde -1 significa infinito) como la cantidad de segundos para dormir entre repeticiones.
Los ejemplos anteriores se convertirían en:

% repeat 100 0 echo "I will not automate this punishment."
% repeat -1 5 echo "This will get echoed every 5 seconds forever."

Respuesta aceptada:

Prueba el watch comando.

Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=<n>] 
             [--no-title] [--version] <command>`

Entonces que:

watch -n1  command

ejecutará el comando cada segundo (bueno, técnicamente, cada segundo más el tiempo que lleva command para ejecutar como watch (al menos el procps y busybox implementaciones) solo duerme un segundo entre dos ejecuciones de command ), para siempre.

¿Le gustaría pasar el comando a exec en lugar de sh -c , usa -x opción:

watch -n1 -x command

En macOS, puede obtener watch desde puertos Mac:

port install watch

O puede obtenerlo de Homebrew:

brew install watch

Linux
  1. Cómo ejecutar o repetir un comando de Linux cada X segundos para siempre

  2. 10 ejemplos de comandos Xargs en Linux / UNIX

  3. UNIX/Linux:ejemplos del comando bash history para repetir los últimos comandos

  4. Repita el comando automáticamente en Linux

  5. Problemas con la línea de comandos de Netcat

Comando Grep en Linux/UNIX

Comando ls en Linux/UNIX

comando cp en Linux/UNIX

Buscar comando en Linux/UNIX

Uso del comando Telnet en Linux/Unix

Comando Unix LS:15 ejemplos prácticos