Délai de Commande sous Mac OS X?
Est-il une alternative pour le délai de commande sur Mac OSx. La condition de base est que je suis en mesure d'exécuter une commande pour un laps de temps spécifié.
e.g:
timeout 10 ping google.com
Ce programme s'exécute ping pour 10s sur Linux.
- Voir aussi unix.stackexchange.com/questions/43340/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Et puis quand vous avez besoin de délai d'attente, utilisez
..au lieu. Pour expliquer pourquoi voici un extrait de l'Homebrew mises en garde de la section:
ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout
pour activer une commande (alias solution fonctionne pour interactive CLI utiliser, mais pas lorsqu'il est appelé à partir de scripts bash).Une autre approche simple qui fonctionne assez bien de la croix-plate-forme (car il utilise perl qui est presque partout) est-ce:
Accroché à partir 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 ça marchera aussi:
timeout.sh
ou une version qui a construit dans l'aide et des exemples:
timeout.sh
perl -e 'alarm shift; exec "ping google.com"
?Alarm clock
message lorsque le timer expire, et l'élimination de cette devient malpropre../timeout.sh 1 "sleep 2.5" 2> /dev/null; echo $?
. Notez que vous pouvez aussi capturer la sortie si vous êtes en cours d'exécution dans un shell interne est exécuté comme suit:RESULT=$(./timeout.sh 1 "sleep 2.5" 2> /dev/null; echo $?)
function timeout() { perl -e 'use Time::HiRes "ualarm"; ualarm shift; exec @ARGV' "$@"; }
(à Noter qu'il nécessite Perl >= 5.8 selon perldoc.perl.org/functions/alarm.html)Vous pouvez limiter le temps d'exécution d'un programme à l'aide de cette commande:
Le Délai d'attente d'un Package à partir d'Ubuntu /Debian peut être fait pour compiler sur Mac et ça fonctionne.
Le package est disponible à http://packages.ubuntu.com/lucid/timeout
brew install coreutils
- ensuite, utilisezgtimeout
ou définissez votre CHEMIN d'accès à utiliser letimeout
nom.Vous pouvez faire
ping -t 10 google.com >nul
l' >nul de se débarrasser de la sortie. Donc, au lieu de montrer de 64 OCTETS à PARTIR de 123.45.67.8 bla bla BLA, il va juste montrer un vide de saut de ligne jusqu'à ce qu'il expire. drapeau-t peut être changé à n'importe quel nombre.