Existe uma alternativa nativa ao comando `watch`; para Darwin / OS X

1

Eu tenho um script que estou tentando portar do Linux para o Darwin / OS X. A versão do Linux atualmente depende do comando watch, que não parece estar instalado no Darwin / OS X por padrão. Qual é a alternativa nativa?

tjt263
fonte

Respostas:

4

Não há substituição exata. Você pode instalar o watchcomando Linux com seu gerenciador de pacotes favorito (homebrew ou macports) ou manualmente.

Ou você pode rolar sua própria watchfuncionalidade com um pequeno loop dentro de uma função shell, como:

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

Em seguida, chame fakewatch ps(substitua pspor qualquer comando que deseja assistir).

Spiff
fonte
2

Com base na resposta incrível do @Spiff, eu a aprimorei um pouco para evitar oscilações / piscadas em cada execução:

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

Dessa forma, armazenamos o resultado antes de imprimi-lo, para que, no momento da impressão, tudo seja impresso ao mesmo tempo

Jorge Chip
fonte