كيف أقوم بإيقاف برنامج شل النصي مؤقتًا لمدة ثانية قبل المتابعة؟

سئل على ٧ فبراير ٢٠١٤  ·  تمت مشاهدة 943.3k مرة  ·  مصدر

user3268208 picture
في ٧ فبراير ٢٠١٤

لقد وجدت فقط كيفية انتظار مدخلات المستخدم. ومع ذلك ، أريد فقط أن أتوقف مؤقتًا حتى لا يتسبب while true تعطل جهاز الكمبيوتر.

حاولت pause(1) ، لكنها تقول -bash: syntax error near unexpected token '1' . كيف يمكن أن تتم؟

الإجابات

RydallCooper picture
في ٧ فبراير ٢٠١٤
1336

استخدم الأمر sleep .

مثال:

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.

يمكن للمرء أيضًا استخدام الكسور العشرية عند تحديد وحدة زمنية ؛ على سبيل المثال ، sleep 1.5s

Vonton picture
في ٦ يناير ٢٠١٧
109

وماذا عن:

read -p "Press enter to continue"
John La Rooy picture
في ٧ فبراير ٢٠١٤
69

في Python (السؤال كان في الأصل موسومًا بلغة Python) ، تحتاج إلى استيراد وحدة الوقت

import time
time.sleep(1)

أو

from time import sleep
sleep(1)

البرنامج النصي شل هو عادل

sleep 1

الذي ينفذ الأمر sleep . على سبيل المثال /bin/sleep

pcmaster574 picture
في ٣٠ يوليو ٢٠١٥
42

أدرك أنني تأخرت قليلاً في هذا الأمر ، ولكن يمكنك أيضًا الاتصال بالنوم وتمضية الوقت الضائع. على سبيل المثال ، إذا أردت الانتظار لمدة 3 ثوانٍ ، يمكنني القيام بما يلي:

/bin/sleep 3

4 ثوان ستبدو كما يلي:

/bin/sleep 4
AnneTheAgile picture
في ٢٣ أغسطس ٢٠١٧
37

في نظام التشغيل Mac OSX ، لا يستغرق السكون دقائق / إلخ ، فقط ثوانٍ. لذلك لمدة دقيقتين ،

sleep 120
Robot Boy picture
في ١٩ سبتمبر ٢٠١٨
33

قم بتشغيل عدة أوامر نوم وأوامر

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

سينتظر هذا لمدة 5 ثوانٍ قبل تنفيذ البرنامج النصي الأول ، ثم سكون مرة أخرى لمدة 3 ثوانٍ قبل أن يغير الدليل مرة أخرى.

Jose H. Rosa picture
في ١٦ أغسطس ٢٠١٧
19

ضمن البرنامج النصي ، يمكنك إضافة ما يلي بين الإجراءات التي تريد إيقافها مؤقتًا. سيؤدي هذا إلى إيقاف الروتين مؤقتًا لمدة 5 ثوانٍ.

read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
Ole Lukøje picture
في ٢٥ فبراير ٢٠١٨
5

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

للمتابعة عند الضغط على أي زر

Balaji Boggaram Ramanarayan picture
في ٩ مايو ٢٠١٩
2

يمكنك جعله ينتظر باستخدام $ RANDOM ، وهو منشئ الأرقام العشوائية الافتراضي. في الأسفل أستخدم 240 ثانية. امل ان يساعد @

> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
Akhil Jalagam picture
في ١٩ نوفمبر ٢٠١٩
2

استخدم trap للإيقاف المؤقت والتحقق من سطر الأوامر (بالألوان باستخدام tput ) قبل تشغيله

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

اضغط على أى زر للاستمرار

استخدم مع set -x لتصحيح سطر الأوامر