GNU/Linux >> Tutoriales Linux >  >> Linux

¿Usando el reloj para ejecutar una función repetidamente en Bash?

Tengo múltiples alias y funciones que solían no funcionar con watch hasta que creé una función que envuelve el watch comando como este, inspirado en @l'L'l respuesta aceptada:

# fishshell
function watch
    command watch -n 0.2 -x fish -c "$argv"
end

# bash
function watch() {
    watch -n 0.2 -x bash -c "[email protected]"
}

# zsh
watch() {
    watch -n 0.2 -x zsh -c "[email protected]"

}

El único inconveniente que veo aquí es que no puedes pasar más argumentos de observación si quieres, seguro que agregué el -n 0.2 para que se actualice cada 0,2 segundos, si tiene otras banderas que le gustaría agregar, deberá agregarlas aquí de antemano.

Personalmente solo uso fishshell así que espero que los demás no estén rotos, ¡no dudes en editar la respuesta para arreglar los comandos!

También como bono para los perezosos que a menudo usan el reloj:alias w=watch


Es posible que watch no está al tanto de su función connection_test_loop. Puedes intentar agregar un export debajo de test_connection para quizás resolver el problema:

test_connection
export -f connection_test_loop
...

↳ http://linuxcommand.org/lc3_man_pages/exporth.html

Al llamar watch , es posible que necesite esta sintaxis:

watch -x bash -c connection_test_loop

Linux
  1. Usando sudo para delegar permisos en Linux

  2. Matriz en Bash no encontrada

  3. Ejecutar script bash como demonio

  4. ¿Cómo ejecutar repetidamente el script bash cada N segundos?

  5. usando random para generar una cadena aleatoria en bash

Funciones bash

Shell Scripting Parte V:Funciones en Bash

Ejecute el software MacOS en Linux usando Darling

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo ejecutar un script Bash

Usando el comando Watch en Linux