OS X Bash, comando 'ver'

Resuelto joseph.hainline asked hace 12 años • 14 respuestas

Estoy buscando la mejor manera de duplicar el comando 'watch' de Linux en Mac OS X. Me gustaría ejecutar un comando cada pocos segundos para hacer coincidir el patrón del contenido de un archivo de salida usando 'tail' y 'sed'. .

¿Cuál es mi mejor opción en una Mac? ¿Se puede hacer sin descargar software?

joseph.hainline avatar Mar 06 '12 04:03 joseph.hainline
Aceptado

Con Homebrew instalado:

brew install watch
seantomburke avatar Apr 29 '2014 16:04 seantomburke

Puedes emular la funcionalidad básica con el bucle de shell:

while :; do clear; your_command; sleep 2; done

Eso se repetirá para siempre, borrará la pantalla, ejecutará su comando y esperará dos segundos: la watch your_commandimplementación básica.

Puede llevar esto un paso más allá y crear un watch.shscript que pueda aceptar your_commandy sleep_durationcomo parámetros:

#!/bin/bash
# usage: watch.sh <your_command> <sleep_duration>

while :; 
  do 
  clear
  date
  $1
  sleep $2
done
Daniel Pittman avatar Mar 05 '2012 21:03 Daniel Pittman

Utilice puertos Mac :

$ sudo port install watch
GoTLiuM avatar Jan 24 '2013 23:01 GoTLiuM

Los shells anteriores funcionarán, e incluso podrías convertirlos en un alias (es posible que necesites incluir una función para manejar los parámetros):

alias myWatch='_() { while :; do clear; $2; sleep $1; done }; _'

Ejemplos:

myWatch 1 ls ## Self-explanatory
myWatch 5 "ls -lF $HOME" ## Every 5 seconds, list out home directory; double-quotes around command to keep its arguments together

Alternativamente, Homebrew puede instalar el reloj desde http://procps.sourceforge.net/ :

brew install watch
IT Gumby avatar Dec 10 '2012 16:12 IT Gumby