Bash: Wie man kurze Verzögerung macht?

8

Wie kann man eine kurze Verzögerung (für weniger als eine Sekunde) in bash machen? Die kleinste Zeiteinheit im Schlafbefehl ist 1 Sek. Ich benutze Bash 3.0 in SunOS 5.10.

    
Raihan 13.10.2011, 16:57
quelle

6 Antworten

4

SunOS (Solaris) hat wahrscheinlich die GNU-Tools nicht standardmäßig installiert. Sie könnten in Erwägung ziehen, sie zu installieren. Es ist auch möglich, dass sie bereits in Ihrem System installiert sind, vielleicht in einem Verzeichnis, das nicht in Ihrem Standard $PATH ist. GNU sleep ist Teil des Pakets coreutils.

Wenn Sie Perl haben, dann folgendes:

%Vor%

sollte für 500000 Mikrosekunden (0,5 Sekunden) schlafen - aber der Aufwand für das Aufrufen von Perl ist beträchtlich.

Für minimalen Overhead würde ich ein kleines C-Programm schreiben, das usleep() oder nanosleep() aufruft. Beachten Sie, dass usleep() möglicherweise keine Intervalle von mehr als 1 Sekunde verarbeitet.

    
Keith Thompson 13.10.2011, 17:29
quelle
7

Ich weiß nicht, in welcher Version dies implementiert wurde, aber meine Version von sleep (v6.12) akzeptiert Dezimalzahlen. sleep 0.5 funktioniert.

Wenn deins für Sie zu alt ist, wäre wahrscheinlich ein kurzes Python oder C-Programm Ihre einzige Lösung.

    
Chriszuma 13.10.2011 17:01
quelle
1

Schreiben Sie dies an "usleep.c"

%Vor%

Und geben Sie

ein %Vor%     
Orwellophile 21.03.2013 15:52
quelle
0

Haben Sie versucht, sich die Manpages anzusehen? Es sollte eine Möglichkeit geben, eine Verzögerung von weniger als einer Sekunde zu machen. Ich bin im Moment keine Linux-Maschine, kann also nicht nach dir suchen.

    
island_hopper 13.10.2011 17:01
quelle
0

Sie können usleep verwenden. Hier ist ein Link zur Manpage: Ссылка

    
user993930 13.10.2011 17:02
quelle
0

Sehr, sehr, sehr einfach pythonesque usleep in dezimalen Sekundenbruchteilen. Es ist nicht sehr präzise, ​​und keine Fehlerprüfung auf Befehlszeilenargumente

%Vor%     
Marc Volovic 17.09.2013 12:49
quelle

Tags und Links