it-swarm.com.de

Wie pausiere ich mein Shell-Skript für eine Sekunde, bevor ich fortfahre?

Ich habe nur gefunden, wie man auf Benutzereingaben wartet. Ich möchte jedoch nur eine Pause einlegen, damit mein while true meinen Computer nicht zum Absturz bringt.

Ich habe pause(1) ausprobiert, aber es steht -bash: syntax error near unexpected token '1'. Wie geht das?

594
user3268208

Verwenden Sie den Befehl sleep.

Beispiel:

sleep .5 # Waits 0.5 second.
sleep 5  # Waits 5 seconds.
sleep 5s # Waits 5 seconds.
sleep 5m # Waits 5 minutes.
sleep 5h # Waits 5 hours.
sleep 5d # Waits 5 days.

Bei der Angabe einer Zeiteinheit können auch Dezimalstellen verwendet werden. z.B. sleep 1.5s

1064
RydallCooper

In Python (Frage wurde ursprünglich mit Python markiert) müssen Sie das Zeitmodul importieren

import time
time.sleep(1)

oder

from time import sleep
sleep(1)

Bei Shell-Skript handelt es sich nur um

sleep 1

Der den Befehl sleep ausführt. z.B. /bin/sleep

65
John La Rooy

Und was ist mit:

read -p "Press enter to continue"
64
Vonton

Mir ist klar, dass ich etwas spät dran bin, aber Sie können auch den Schlaf anrufen und die gewünschte Zeit verstreichen lassen. Zum Beispiel: Wenn ich 3 Sekunden warten wollte, kann ich Folgendes tun:

/bin/sleep 3

4 Sekunden würden so aussehen:

/bin/sleep 4
38
pcmaster574

Unter Mac OS X dauert der Energiesparmodus nur wenige Minuten. Also für zwei Minuten,

sleep 120
31
AnneTheAgile

Führen Sie mehrere Ruhezustände und Befehle aus

sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..

Dies wird 5 Sekunden warten, bevor das erste Skript ausgeführt wird, und dann erneut 3 Sekunden warten, bevor das Verzeichnis erneut geändert wird.

17
Robot Boy

Innerhalb des Skripts können Sie zwischen den Aktionen, für die Sie eine Pause wünschen, Folgendes hinzufügen. Dadurch wird die Routine für 5 Sekunden angehalten.

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
17
Jose H. Rosa

read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s

So fahren Sie fort, wenn Sie eine beliebige Taste drücken

5
Andrey

Sie können es mit $ RANDOM, einem Standard-Zufallszahlengenerator, warten lassen. Im Folgenden verwende ich 240 Sekunden. Ich hoffe, das hilft @

> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS