¿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/timeout
simplemente 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 coreutils
y eltimeout
comando 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 clock
mensaje 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 usegtimeout
o configure su PATH para usar eltimeout
nombre.Tu puedes hacer
ping -t 10 google.com >nul
el> 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