Ich habe ein Skript, das ich versuche, von Linux nach Darwin / OS X zu portieren. Die Linux-Version hängt derzeit vom watch
Befehl ab, der standardmäßig nicht auf Darwin / OS X installiert zu sein scheint. Was ist die native Alternative?
Ich habe ein Skript, das ich versuche, von Linux nach Darwin / OS X zu portieren. Die Linux-Version hängt derzeit vom watch
Befehl ab, der standardmäßig nicht auf Darwin / OS X installiert zu sein scheint. Was ist die native Alternative?
Antworten:
Es gibt keine native Alternative. Sie müssen watch
von Homebrew ( brew install watch
) oder MacPorts ( port install watch
) lernen, wenn Sie eine tatsächliche ausführbare Datei benötigen.
Sie können jedoch die Funktion von emulieren watch
. Dies kann in einer Standard-Bash-While-Schleife ( aus Stack Overflow von Daniel Pittman ) erreicht werden:
Sie können die Grundfunktionalität mit der Shell-Schleife emulieren:
while :; do clear; your_command; sleep 2; done
Das wird für immer eine Schleife sein, den Bildschirm löschen, Ihren Befehl ausführen und zwei Sekunden warten - die grundlegende Implementierung von your_command.
Sie können noch einen Schritt weiter gehen und ein watch.sh-Skript erstellen, das Ihren Befehl und Ihre Schlafdauer als Parameter akzeptiert:
#!/bin/bash # usage: watch.sh <your_command> <sleep_duration> while :; do clear date $1 sleep $2 done