Hoe kan ik mijn shellscript een seconde pauzeren voordat ik verder ga?

Ik heb alleen ontdekt hoe ik op gebruikersinvoer moet wachten. Ik wil echter alleen pauzeren zodat mijn while truemijn computer niet laat crashen.

Ik heb pause(1)geprobeerd, maar er staat -bash: syntax error near unexpected token '1'. Hoe kan het?


Antwoord 1, autoriteit 100%

Gebruik de opdracht sleep.

Voorbeeld:

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.

Men kan ook decimalen gebruiken bij het specificeren van een tijdseenheid; bijv. sleep 1.5s


Antwoord 2, autoriteit 9%

En hoe zit het met:

read -p "Press enter to continue"

Antwoord 3, autoriteit 5%

In Python (de vraag was oorspronkelijk getagd als Python) moet je de tijdmodule importeren

import time
time.sleep(1)

of

from time import sleep
sleep(1)

Voor shell-script is het gewoon

sleep 1

Die de opdracht sleepuitvoert. bijv. /bin/sleep


Antwoord 4, autoriteit 3%

Ik realiseer me dat ik een beetje laat hiermee ben, maar je kunt ook slapen bellen en de gewenste tijd doorgeven. Als ik bijvoorbeeld 3 seconden wil wachten, kan ik het volgende doen:

/bin/sleep 3

4 seconden zouden er als volgt uitzien:

/bin/sleep 4

Antwoord 5, autoriteit 3%

Voer meerdere slaapstanden en opdrachten uit

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

Dit wacht 5 seconden voordat het eerste script wordt uitgevoerd, en slaapt dan weer 3 seconden voordat het van map verandert.


Antwoord 6, autoriteit 2%

Op Mac OSX duurt de slaapstand geen minuten/enz., slechts seconden. Dus gedurende twee minuten,

sleep 120

Antwoord 7

Binnen het script kun je het volgende toevoegen tussen de acties die je wilt pauzeren. Hierdoor wordt de routine 5 seconden onderbroken.

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."

Antwoord 8

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

Om door te gaan wanneer u op een knop drukt

voor meer info check readmanpage ref 1, ref 2


Antwoord 9

Je kunt het laten wachten met $RANDOM, een standaard generator voor willekeurige getallen. In het onderstaande gebruik ik 240 seconden. Ik hoop dat dat helpt @

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

Antwoord 10

gebruik trapom de opdrachtregel te pauzeren en te controleren (in kleur met tput) voordat u deze uitvoert

trap 'tput setaf 1;tput bold;echo $BASH_COMMAND;read;tput init' DEBUG

Druk op een willekeurige toets om door te gaan

Gebruik met set -xom opdrachtregel te debuggen

Other episodes