1

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

2 ответа2

4

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

Или вы можете свернуть свою собственную функциональность, похожую на watch с помощью небольшого цикла внутри функции оболочки, например:

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

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

2

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .