Gibt es eine native Alternative zum Befehl "watch"? für Darwin / OS X

1340
tjt263

Ich habe ein Skript, das ich versuche, von Linux nach Darwin / OS X zu portieren. Die Linux-Version hängt derzeit vom Befehl watch ab, der scheinbar nicht standardmäßig unter Darwin / OS X installiert ist. Was ist die native Alternative?

1

2 Antworten auf die Frage

4
Spiff

Es gibt keinen genauen Ersatz. Sie können den Linux- watchBefehl mit Ihrem bevorzugten Paketmanager (Homebrew oder Macports) oder manuell installieren .

Oder Sie können Ihre eigene, watchähnliche Funktion mit einer kleinen Schleife innerhalb einer Shell-Funktion ausführen, z.

fakewatch () { while true; do clear; date; $; sleep 2; done; } 

Rufen Sie dann auf fakewatch ps(ersetzen Sie es psmit dem Befehl, den Sie sich ansehen möchten).

1
Jorge Chip

Basierend auf der fantastischen Antwort von @Spiff habe ich sie ein wenig verbessert, um zu vermeiden, dass bei jeder Ausführung ein Flackern / Blinken auftritt:

fakewatch () { while true; do DATE=$(date); RESULT=$(${@}); clear; echo "$DATE"; echo "$RESULT"; sleep 5; done; } 

Auf diese Weise speichern wir das Ergebnis, bevor es gedruckt wird, sodass zum Zeitpunkt des Druckens alles gleichzeitig gedruckt wird