ฉันพบวิธีที่จะรออินพุตของผู้ใช้เท่านั้น อย่างไรก็ตามฉันต้องการหยุดชั่วคราวเท่านั้นเพื่อที่while trueจะได้ไม่เกิดความผิดพลาดกับคอมพิวเตอร์ของฉัน
ฉันพยายามแต่มันบอกว่าpause(1) -bash: syntax error near unexpected token '1'จะทำอย่างไร?
ฉันพบวิธีที่จะรออินพุตของผู้ใช้เท่านั้น อย่างไรก็ตามฉันต้องการหยุดชั่วคราวเท่านั้นเพื่อที่while trueจะได้ไม่เกิดความผิดพลาดกับคอมพิวเตอร์ของฉัน
ฉันพยายามแต่มันบอกว่าpause(1) -bash: syntax error near unexpected token '1'จะทำอย่างไร?
คำตอบ:
ใช้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
thread.sleepฟังก์ชั่นในหลาย ๆ ภาษาโปรแกรม @Geremia
และสิ่งที่เกี่ยวกับ:
read -p "Press enter to continue"
PAUSE
ใน Python (คำถามเดิมถูกแท็ก Python) คุณต้องนำเข้าโมดูลเวลา
import time
time.sleep(1)
หรือ
from time import sleep
sleep(1)
สำหรับเชลล์สคริปต์นั้นเป็นเพียง
sleep 1
ซึ่งรันsleepคำสั่ง เช่น./bin/sleep
python -c "import time; time.sleep(1)"แทนsleep 1:)
python -c "import time; time.sleep(0.8)"แทน แต่เราต้องคำนึงถึงระยะเวลาในการเริ่มต้นของไพ ธ อน คุณต้องเรียกใช้สิ่งนี้: date +%N; python -c "import time; time.sleep(0)"; date +%Nเพื่อกำหนดว่าจะใช้ไพ ธ อนกี่นาโนวินาทีในการเริ่มต้น แต่นั่นยังรวมถึงค่าใช้จ่ายจากวันที่ทำงาน เรียกใช้สิ่งนี้date +%N; date +%Nเพื่อค้นหาค่าใช้จ่ายนั้น ค่าใช้จ่ายของไพ ธ อนในเครื่องของฉันใกล้เคียงกับ 0.14 วินาทีแล้ว time.sleep(0.86)ดังนั้นผมจึงต้องการ
ฉันรู้ว่าฉันมาช้าไปหน่อยกับสิ่งนี้ แต่คุณสามารถเรียกการนอนหลับและผ่านช่วงเวลาที่พ้นไปได้เช่นถ้าฉันต้องการรอ 3 วินาทีฉันจะทำ:
/bin/sleep 3
4 วินาทีจะมีลักษณะเช่นนี้:
/bin/sleep 4
บน Mac OSX การนอนหลับไม่ใช้เวลาหลายนาที / ฯลฯ เพียงไม่กี่วินาที ดังนั้นสองนาที
sleep 120
เรียกใช้หลาย sleeps และคำสั่ง
sleep 5 && cd /var/www/html && git pull && sleep 3 && cd ..
การดำเนินการนี้จะรอ 5 วินาทีก่อนที่จะเรียกใช้สคริปต์แรกจากนั้นจะเข้าสู่โหมดสลีปอีก 3 วินาทีก่อนที่จะเปลี่ยนไดเรกทอรีอีกครั้ง
ภายในสคริปต์คุณสามารถเพิ่มสิ่งต่อไปนี้ระหว่างการดำเนินการที่คุณต้องการหยุดชั่วคราว สิ่งนี้จะหยุดกิจวัตรเป็นเวลา 5 วินาที
read -p "Pause Time 5 seconds" -t 5
read -p "Continuing in 5 Seconds...." -t 5
echo "Continuing ...."
-t 5จะยกเลิกสคริปต์หลังจาก 5 วินาทีไม่ดำเนินการต่อไปอย่างน้อยตามหน้าคนนี้อ่าน
read -r -p "Wait 5 seconds or press any key to continue immediately" -t 5 -n 1 -s
เพื่อดำเนินการต่อเมื่อคุณกดปุ่มใดปุ่มหนึ่ง
คุณสามารถทำให้มันรอโดยใช้ $ RANDOM ตัวสร้างหมายเลขสุ่มเริ่มต้น ในด้านล่างฉันใช้ 240 วินาที หวังว่าจะช่วยให้ @
> WAIT_FOR_SECONDS=`/usr/bin/expr $RANDOM % 240` /bin/sleep
> $WAIT_FOR_SECONDS
ใช้กับดักเพื่อหยุดและตรวจสอบบรรทัดคำสั่งก่อนรัน
trap 'tput setaf 1;tput bold;echo $BASH_COMMAND;read;tput init' DEBUG
กดปุ่มใดก็ได้เพื่อดำเนินการต่อ
ใช้กับ
set -xเพื่อดีบักบรรทัดรับคำสั่ง
sleep! (pause,waitหรือdelayจะทำให้เข้าใจมากขึ้นและง่ายต่อการจดจำ)