Ho più alias e funzioni che prima non funzionavano con watch finché non ho creato una funzione che avvolge il watch comando come questo, ispirato da @l'L'l risposta accettata:
# fishshell
function watch
command watch -n 0.2 -x fish -c "$argv"
end
# bash
function watch() {
watch -n 0.2 -x bash -c "example@unixlinux.online"
}
# zsh
watch() {
watch -n 0.2 -x zsh -c "example@unixlinux.online"
}
L'unico inconveniente che vedo qui è che non puoi passare più argomenti watch se vuoi, sicuramente ho aggiunto il -n 0.2 flag per aggiornarlo ogni 0,2 secondi, se hai altri flag che desideri aggiungere dovrai prima aggiungerli qui.
Personalmente uso solo fishshell quindi spero che gli altri non siano rotti, non esitare a modificare la risposta per correggere i comandi!
Anche come bonus per i pigri che usano spesso l'orologio:alias w=watch
È possibile che watch non è a conoscenza della tua funzione connection_test_loop. Puoi provare ad aggiungere un export sotto test_connection forse per risolvere il problema:
test_connection
export -f connection_test_loop
...
↳ http://linuxcommand.org/lc3_man_pages/exporth.html
Quando chiami watch , potresti aver bisogno di questa sintassi:
watch -x bash -c connection_test_loop