web-dev-qa-db-fra.com

Comment mettre en pause mon script Shell pendant une seconde avant de continuer?

J'ai seulement trouvé comment attendre les entrées de l'utilisateur. Cependant, je veux seulement faire une pause pour que mon while true ne plante pas mon ordinateur.

J'ai essayé pause(1), mais il est écrit -bash: syntax error near unexpected token '1'. Comment ceci peut être fait?

594
user3268208

Utilisez la commande sleep.

Exemple:

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.

On peut également utiliser des décimales pour spécifier une unité de temps; par exemple. sleep 1.5s

1064
RydallCooper

Dans Python (la question était balisée à l'origine avec Python), vous devez importer le module de temps.

import time
time.sleep(1)

ou

from time import sleep
sleep(1)

Pour Shell, le script est juste

sleep 1

Ce qui exécute la commande sleep. par exemple. /bin/sleep

65
John La Rooy

Et à propos de:

read -p "Press enter to continue"
64
Vonton

Je me rends compte que je suis un peu en retard avec ceci, mais vous pouvez aussi appeler sleep et passer le temps désiré. Par exemple, si je voulais attendre 3 secondes, je peux faire:

/bin/sleep 3

4 secondes ressembleraient à ceci:

/bin/sleep 4
38
pcmaster574

Sur Mac OSX, la mise en veille ne prend pas quelques minutes, etc., mais quelques secondes seulement. Donc pendant deux minutes,

sleep 120
31
AnneTheAgile

Exécuter plusieurs sommeil et commandes

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

Cela attendra 5 secondes avant d'exécuter le premier script, puis s'endormira de nouveau pendant 3 secondes avant de changer de répertoire.

17
Robot Boy

Dans le script, vous pouvez ajouter ce qui suit entre les actions pour lesquelles vous souhaitez une pause. Cela mettra la routine en pause pendant 5 secondes.

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

Pour continuer lorsque vous appuyez sur un bouton

5
Andrey

Vous pouvez le faire attendre avec $ RANDOM, un générateur de nombres aléatoires par défaut. Dans le ci-dessous, j'utilise 240 secondes. J'espère que ça t'as aidé @

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