Ho solo trovato come attendere l'input dell'utente. Tuttavia, voglio solo mettere in pausa in modo che il while true
mio computer non si blocchi.
Ci ho provato pause(1)
, ma dice -bash: syntax error near unexpected token '1'
. Come si può fare?
Ho solo trovato come attendere l'input dell'utente. Tuttavia, voglio solo mettere in pausa in modo che il while true
mio computer non si blocchi.
Ci ho provato pause(1)
, ma dice -bash: syntax error near unexpected token '1'
. Come si può fare?
Risposte:
Usa il sleep
comando
Esempio:
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.
Si possono anche usare decimali quando si specifica un'unità di tempo; per esempiosleep 1.5s
thread.sleep
funzione in molti linguaggi di programmazione @Geremia
E che mi dici di:
read -p "Press enter to continue"
PAUSE
In Python (la domanda era originariamente contrassegnata con Python) è necessario importare il modulo temporale
import time
time.sleep(1)
o
from time import sleep
sleep(1)
Per shell script è giusto
sleep 1
Che esegue il sleep
comando. per esempio./bin/sleep
python -c "import time; time.sleep(1)"
invece di sleep 1
:)
python -c "import time; time.sleep(0.8)"
invece. Ma allora dobbiamo considerare il tempo necessario per l'avvio di Python. È necessario eseguire questo: date +%N; python -c "import time; time.sleep(0)"; date +%N
per determinare quanti nanosecondi sta impiegando Python per iniziare. Ma questo include anche alcune spese generali dalla data di esecuzione. Esegui questo date +%N; date +%N
per trovare quel sovraccarico. Il sovraccarico di Python sulla mia macchina era in realtà più vicino a 0,14 secondi. Quindi voglio time.sleep(0.86)
.
Mi rendo conto di essere un po 'in ritardo con questo, ma puoi anche chiamare sleep e passare il tempo invalido. Ad esempio, se volessi aspettare 3 secondi, posso fare:
/bin/sleep 3
4 secondi sarebbe simile a questo:
/bin/sleep 4
Su Mac OSX, la sospensione non richiede minuti / ecc., Solo secondi. Quindi per due minuti,
sleep 120
Esegui più sleep e comandi
sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..
Questo attenderà 5 secondi prima di eseguire il primo script, quindi dormirà di nuovo per 3 secondi prima che cambi nuovamente directory.
All'interno dello script puoi aggiungere quanto segue tra le azioni che desideri mettere in pausa. Questo metterà in pausa la routine per 5 secondi.
read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
-t 5
interromperà la sceneggiatura dopo 5 secondi, non continuerà, almeno secondo questa pagina man per la lettura
read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s
Per continuare quando si preme un pulsante qualsiasi
Puoi farlo aspettare usando $ RANDOM, un generatore di numeri casuali predefinito. Di seguito sto usando 240 secondi. Spero che aiuti @
> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
sleep
! (pause
,wait
odelay
avrebbe più senso e sarebbe più facile da ricordare.)