У меня есть сценарий, который я пытаюсь перенести с Linux на Darwin / OS X. В настоящее время версия Linux зависит от watch
команды, которая, по-видимому, не установлена на Darwin / OS X по умолчанию. Какая нативная альтернатива?
У меня есть сценарий, который я пытаюсь перенести с Linux на Darwin / OS X. В настоящее время версия Linux зависит от watch
команды, которая, по-видимому, не установлена на Darwin / OS X по умолчанию. Какая нативная альтернатива?
Ответы:
Нет родной альтернативы. Вы должны приобрести watch
с помощью Homebrew ( brew install watch
) или MacPorts ( port install watch
), если вам требуется фактический исполняемый файл.
Однако вы можете эмулировать функцию watch
. Это может быть выполнено в стандартном цикле bash while ( из Stack Overflow, автор Daniel Pittman ):
Вы можете эмулировать основные функции с помощью цикла оболочки:
while :; do clear; your_command; sleep 2; done
Это зациклится навсегда, очистит экран, запустит вашу команду и подождет две секунды - базовая реализация вашей_команды.
Вы можете сделать еще один шаг и создать сценарий watch.sh, который может принимать your_command и sleep_duration в качестве параметров:
#!/bin/bash # usage: watch.sh <your_command> <sleep_duration> while :; do clear date $1 sleep $2 done