¿Existe una alternativa para el comando de tiempo de espera en Mac OSx? El requisito básico es que puedo ejecutar un comando durante un período de tiempo específico.
p.ej:
timeout 10 ping google.com
Este programa ejecuta ping durante 10 segundos en Linux.

Respuestas:
Puedes usar
Y luego, cuando necesite tiempo de espera, use
..en lugar. Para explicar por qué, aquí hay un fragmento de la sección Advertencias de Homebrew:
fuente
ln -s /usr/local/bin/gtimeout /usr/local/bin/timeoutsimplemente para habilitar un comando (la solución de alias funciona para el uso de CLI interactivo, pero no cuando se llama desde scripts bash).brew install coreutilsy eltimeoutcomando estaba disponible sin el prefijo.Otro enfoque simple que funciona prácticamente en varias plataformas (porque usa Perl, que está en casi todas partes) es este:
Enganchado desde aquí: https://gist.github.com/jaytaylor/6527607
En lugar de ponerlo en una función, puede simplemente poner la siguiente línea en un script y también funcionará:
timeout.sh
o una versión que ha incorporado ayuda / ejemplos:
timeout.sh
fuente
perl -e 'alarm shift; exec "ping google.com"?Alarm clockmensaje cuando el temporizador expira y eliminarlo se vuelve complicado .function timeout() { perl -e 'use Time::HiRes "ualarm"; ualarm shift; exec @ARGV' "$@"; }(Tenga en cuenta que requiere Perl> = 5.8 de acuerdo con perldoc.perl.org/functions/alarm.html )Puede limitar el tiempo de ejecución de cualquier programa usando este comando:
fuente
El paquete Timeout de Ubuntu / Debian se puede compilar en Mac y funciona. El paquete está disponible en http://packages.ubuntu.com/lucid/timeout
fuente
brew install coreutils- luego usegtimeouto configure su PATH para usar eltimeoutnombre.Tu puedes hacer
ping -t 10 google.com >nulel> nul se deshace de la salida. Entonces, en lugar de mostrar 64 BYTES DE 123.45.67.8 BLAH BLAH BLAH, solo mostrará una nueva línea en blanco hasta que se agote el tiempo. -t bandera se puede cambiar a cualquier número.
fuente