Existe-t-il une alternative à la commande timeout sur Mac OSx. L'exigence de base est que je suis capable d'exécuter une commande pendant une durée spécifiée.
par exemple:
timeout 10 ping google.com
Ce programme exécute un ping pendant 10 secondes sous Linux.
Réponses:
Vous pouvez utiliser
Et puis chaque fois que vous avez besoin de délai, utilisez
..au lieu. Pour expliquer pourquoi, voici un extrait de la section Homebrew Caveats:
la source
ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout
pour simplement activer la commande one (la solution d'alias fonctionne pour une utilisation CLI interactive, mais pas lorsqu'elle est appelée à partir de scripts bash).brew install coreutils
, et latimeout
commande était disponible sans le préfixe.Une autre approche simple qui fonctionne à peu près multiplateforme (car elle utilise perl qui est presque partout) est la suivante:
Accroché d'ici: https://gist.github.com/jaytaylor/6527607
Au lieu de le mettre dans une fonction, vous pouvez simplement mettre la ligne suivante dans un script, et cela fonctionnera aussi:
timeout.sh
ou une version avec aide / exemples intégrés:
timeout.sh
la source
perl -e 'alarm shift; exec "ping google.com"
?Alarm clock
message lorsque la minuterie expire, et son élimination devient compliquée .function timeout() { perl -e 'use Time::HiRes "ualarm"; ualarm shift; exec @ARGV' "$@"; }
(Notez que cela nécessite Perl> = 5.8 selon perldoc.perl.org/functions/alarm.html )Vous pouvez limiter le temps d'exécution de n'importe quel programme à l'aide de cette commande:
la source
Le package Timeout d'Ubuntu / Debian peut être compilé sur Mac et cela fonctionne. Le package est disponible sur http://packages.ubuntu.com/lucid/timeout
la source
brew install coreutils
- puis utilisezgtimeout
ou définissez votre PATH pour utiliser letimeout
nom.Tu peux faire
ping -t 10 google.com >nul
le> nul supprime la sortie. Donc, au lieu d'afficher 64 BYTES FROM 123.45.67.8 BLAH BLAH BLAH, il affichera simplement une nouvelle ligne vide jusqu'à ce qu'elle expire. L'indicateur -t peut être changé en n'importe quel nombre.
la source