Sadece kullanıcı girdisini nasıl bekleyeceğimi buldum. Ancak, yalnızca while true
bilgisayarımı kilitlememek için duraklatmak istiyorum .
Denedim pause(1)
ama diyor -bash: syntax error near unexpected token '1'
. Nasıl yapılabilir?
Sadece kullanıcı girdisini nasıl bekleyeceğimi buldum. Ancak, yalnızca while true
bilgisayarımı kilitlememek için duraklatmak istiyorum .
Denedim pause(1)
ama diyor -bash: syntax error near unexpected token '1'
. Nasıl yapılabilir?
Yanıtlar:
sleep
Komutu kullanın .
Misal:
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.
Bir zaman birimi belirtilirken ondalık sayılar da kullanılabilir; Örneğinsleep 1.5s
thread.sleep
birçok programlama dilinde işlevimiz olduğu için @Geremia
Ve ne hakkında:
read -p "Press enter to continue"
PAUSE
Python'da (soru başlangıçta Python olarak etiketlendi) zaman modülünü içe aktarmanız gerekir
import time
time.sleep(1)
veya
from time import sleep
sleep(1)
Kabuk betiği için
sleep 1
Hangi sleep
komutu yürütür . Örneğin./bin/sleep
python -c "import time; time.sleep(1)"
yerine sleep 1
:)
python -c "import time; time.sleep(0.8)"
yerine yapın. Ama sonra python başlatmanın gerçekte ne kadar sürdüğünü hesaba katmamız gerekiyor. Bunu çalıştırmanız gerekir: date +%N; python -c "import time; time.sleep(0)"; date +%N
python'un kaç nanosaniye başlatacağını belirlemek için. Ancak bu, çalışma tarihinden itibaren bazı ek yükleri de içerir. Bu date +%N; date +%N
yükü bulmak için çalıştırın . Python'un makinemdeki yükü aslında 0.14 saniyeye daha yakındı. Ben de istiyorum time.sleep(0.86)
.
Bununla biraz geç kaldığımı fark ettim, ancak uykuyu da arayabilir ve disired zamanını geçirebilirsiniz. Örneğin, 3 saniye beklemek istersem yapabilirim:
/bin/sleep 3
4 saniye şöyle görünür:
/bin/sleep 4
Mac OSX'te, uyku dakika / vb. Sürmez, yalnızca saniyeler sürer. Yani iki dakika,
sleep 120
Birden fazla uyku ve komut çalıştırma
sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..
Bu, ilk komut dosyasını yürütmeden önce 5 saniye bekleyecek, daha sonra dizini yeniden değiştirmeden önce 3 saniye boyunca yeniden uyuyacaktır.
Komut dosyasına, duraklatmak istediğiniz eylemler arasına aşağıdakileri ekleyebilirsiniz. Bu rutini 5 saniye duraklatacaktır.
read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
-t 5
senaryoyu 5 saniye sonra iptal edecek, devam etmeyecek, en azından okumak için bu adam sayfasına göre
read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s
Herhangi bir düğmeye bastığınızda devam etmek için
Varsayılan rasgele sayı üreteci $ RANDOM'u kullanarak bekletebilirsiniz. Aşağıda 240 saniye kullanıyorum. Umarım yardımcı olur @
> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
sleep
! (pause
,wait
veyadelay
daha anlamlı olur ve hatırlanması daha kolay olur.)