Есть ли нативная альтернатива команде `watch`; для Дарвина /OS X

У меня есть скрипт, который я пытаюсь перенести с Linux на Darwin/OS X. В настоящее время версия Linux зависит от команды watch, которая, по-видимому, не установлена ​​на Darwin / OS X по умолчанию. Какая нативная альтернатива?

4 ответа

Там нет точной замены. Вы можете установить Linux watch Команда с вашим любимым менеджером пакетов (доморощенный или MacPort), или вручную.

Или вы можете свернуть свой собственный watch-подобная функциональность с небольшим циклом внутри функции оболочки, например:

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

Тогда позвони fakewatch ps (заменить ps с любой командой вы хотите посмотреть).

Основываясь на потрясающем ответе @Spiff, я немного улучшил его, чтобы избежать мерцания / мигания при каждом выполнении:

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

Таким образом, мы сохраняем результат перед его печатью, поэтому во время печати все печатается одновременно

Этот вопрос Есть ли способ динамически обновить команду less?может помочь.

Для ОС, которая не поддерживаетwatch(например, Darwin/OS X, Solaris), вы можете попробовать

      less +F FILENAME

Это эквивалентно нажатию Shift+Fпослеless FILENAMEкоторые продолжают обновлять файл.

Другая возможность — использовать менеджер пакетов homebrew. См.: Homebrew. Если вы его установили, путь будет простым:

      brew install watch
Другие вопросы по тегам