Ho uno script che sto provando a trasferire da Linux a Darwin / OS X. La versione di Linux attualmente dipende dal watch
comando, che non sembra essere installato su Darwin / OS X per impostazione predefinita. Qual è l'alternativa nativa?
Ho uno script che sto provando a trasferire da Linux a Darwin / OS X. La versione di Linux attualmente dipende dal watch
comando, che non sembra essere installato su Darwin / OS X per impostazione predefinita. Qual è l'alternativa nativa?
Risposte:
Non esiste alternativa nativa. È necessario acquisire watch
dall'uso di Homebrew ( brew install watch
) o MacPorts ( port install watch
) se si richiede un eseguibile effettivo.
È comunque possibile emulare la funzione di watch
. Ciò può essere realizzato in un ciclo bash while standard ( da Stack Overflow di Daniel Pittman ):
Puoi emulare le funzionalità di base con il loop shell:
while :; do clear; your_command; sleep 2; done
Questo eseguirà un ciclo continuo, azzererà lo schermo, eseguirà il comando e attenderà due secondi: l'implementazione di base di your_command.
Puoi fare un ulteriore passo avanti e creare uno script watch.sh che possa accettare your_command e sleep_duration come parametri:
#!/bin/bash # usage: watch.sh <your_command> <sleep_duration> while :; do clear date $1 sleep $2 done