Mam skrypt, który próbuję przenieść z systemu Linux na system Darwin / OS X. Wersja systemu Linux zależy obecnie od watch
polecenia, które domyślnie nie jest instalowane w systemie Darwin / OS X. Jaka jest natywna alternatywa?
Mam skrypt, który próbuję przenieść z systemu Linux na system Darwin / OS X. Wersja systemu Linux zależy obecnie od watch
polecenia, które domyślnie nie jest instalowane w systemie Darwin / OS X. Jaka jest natywna alternatywa?
Odpowiedzi:
Nie ma natywnej alternatywy. Musisz nabyć watch
korzystając z Homebrew ( brew install watch
) lub MacPorts ( port install watch
), jeśli potrzebujesz rzeczywistego pliku wykonywalnego.
Możesz jednak emulować funkcję watch
. Można tego dokonać w standardowej pętli bash while ( z Stack Overflow Daniela Pittmana ):
Możesz emulować podstawową funkcjonalność za pomocą pętli powłoki:
while :; do clear; your_command; sleep 2; done
To będzie zapętlało się na zawsze, wyczyści ekran, uruchomi polecenie i zaczeka dwie sekundy - podstawowa obserwacja implementacji twojego polecenia.
Możesz pójść o krok dalej i stworzyć skrypt watch.sh, który będzie akceptował twoje polecenie i czas_śpienia jako parametry:
#!/bin/bash # usage: watch.sh <your_command> <sleep_duration> while :; do clear date $1 sleep $2 done