Czy istnieje alternatywa dla polecenia limitu czasu w systemie Mac OSx? Podstawowym wymaganiem jest to, że mogę uruchomić polecenie przez określony czas.
na przykład:
timeout 10 ping google.com
Ten program uruchamia ping przez 10 sekund w systemie Linux.
Odpowiedzi:
Możesz użyć
A potem, gdy potrzebujesz limitu czasu, użyj
..zamiast. Aby wyjaśnić, dlaczego oto fragment z sekcji Ostrzeżenia Homebrew:
źródło
ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout
po prostu włączyć jedno polecenie (rozwiązanie aliasu działa do interaktywnego użycia CLI, ale nie gdy jest wywoływane ze skryptów bash).brew install coreutils
, atimeout
polecenie było dostępne bez prefiksu.Innym prostym podejściem, które działa prawie na wielu platformach (ponieważ używa perla, który jest prawie wszędzie), jest to:
Zaczepiony stąd: https://gist.github.com/jaytaylor/6527607
Zamiast umieszczać go w funkcji, możesz po prostu umieścić następujący wiersz w skrypcie i też zadziała:
timeout.sh
lub wersja z wbudowaną pomocą / przykładami:
timeout.sh
źródło
perl -e 'alarm shift; exec "ping google.com"
?Alarm clock
komunikat, gdy licznik czasu się kończy, a wyeliminowanie tego staje się bałaganiarskie .function timeout() { perl -e 'use Time::HiRes "ualarm"; ualarm shift; exec @ARGV' "$@"; }
(Zauważ, że wymaga Perl> = 5.8 zgodnie z perldoc.perl.org/functions/alarm.html )Możesz ograniczyć czas wykonywania dowolnego programu za pomocą tego polecenia:
źródło
Pakiet Timeout z Ubuntu / Debian można skompilować na Macu i działa. Pakiet jest dostępny pod adresem http://packages.ubuntu.com/lucid/timeout
źródło
brew install coreutils
- następnie użyjgtimeout
lub ustaw PATH, aby używaćtimeout
nazwy.Możesz to zrobić
ping -t 10 google.com >nul
> nul pozbywa się wyniku. Więc zamiast pokazywać 64 bajty FROM 123.45.67.8 BLAH BLAH BLAH pokaże po prostu pustą nową linię, dopóki nie upłynie limit czasu. -t flagę można zmienić na dowolną liczbę.
źródło