El comando watch

AdriMcGrady 12/10/2021

¿No os ha pasado nunca que al lanzar un comando que tarda un poquito en ejecutarse os habéis abierto otra sesión y lanzado un comando de comprobación tropecientas veces pulsando ↑ + [Enter]? Pues a mí me pasaba pero ya no. Bueno lo mismo es que soy un poco agonía pero el asunto es que hay una pequeña utilidad que te evitará esto y además te valdrá para otras circunstancias.

El comando watch

Efectivamente, esta utilidad se llama watch y te ahorrará lanzar cualquier comando de manera repetida. Este sencilla herramienta lo que hace es básicamente lanzar de manera periódica el comando que le digamos y en el intervalo que le digamos.

Es decir, podemos estar copiando un fichero de una ubicación a otra, y en vez estar continuamente comprobando el fichero destino para ver como va la copia, podemos decirle a watch que nos lance un ls -l del fichero destino cada 5 segundos.

Usando watch

Comenzando con su instalación (si es que tu distribución no lo tiene instalado por defecto), hay que decir que es bastante sencilla. En Debian, Ubuntu o derivados es tan simple como:

apt install watch 

Una vez instalada, la herramienta es muy sencilla de usar. Su uso básico podría ser así:

watch COMANDO_A_EJECUTAR

Además, el comando watch tiene algunas opciones más que interesantes que lo hacen muy configurable dentro de su simplicidad:

  • -n: Establece el intervalo con que se ejecuta el comando. Si no se establece, por defecto es 2 segundos (por lo menos en mi distro).
  • -d: Resalta las diferencias de las sucesivas ejecuciones, muy útil la verdad.
  • -b: Emitirá un beep si el comando lanzado no tiene código de salida 0.

Hay algunas opciones más como hacer que el comando watch deje de ejecutarse cuando haya un cambio en la salida, o congelar la salida si el comando devuelve un error o alguna más. Te animo a que le des un vistazo al resto de opciones.

Ejemplos de uso

Como os podéis imaginar podemos usar este comando un multitud de ocasiones y con múltiples objetivos. A continuación muestro algunos ejemplos simples de su uso y su funcionamiento. Para ello combinaremos el comando watch con date.

# Ejecutar y mostrar la salida de un comando usando las opciones por defecto.
watch date

Comando watch defecto

# Ejecutar y mostrar la salida de un comando cada 3 segundos.
watch -n 3 date

Comando watch intervalo 3 segundos

# Ejecutar y mostrar la salida de un comando cada 3 segundos y resaltando las diferencias.
watch -n 3 -d date

Comando watch intervale 3 segundos

Enlaces de interés:

Artículo anterior Artículo siguiente

Artículos relacionados: