วิธีทำให้สคริปต์ bash ทำงานด้วยเวลาแฝง (เช่นรอ 1 วินาทีในการทำซ้ำแต่ละครั้ง)


28

ฉันมีสคริปต์ทุบตีนี้

for (( i = 1 ; i <= 160 ; i++ )); do
  qsub myccomputations"${i}".pbs
done

โดยทั่วไปฉันต้องการถ้ามีการหน่วงเวลา 1 วินาทีระหว่างการทำซ้ำแต่ละครั้ง เหตุผลก็คือในการทำซ้ำแต่ละครั้งมันจะส่งไฟล์โปรแกรมmycomputation"${i}$.pbsไปยังโหนดหลักสำหรับการแก้ปัญหา แรงจูงใจคือการแก้ไขในกรณีนี้เกี่ยวข้องกับการใช้ตัวเลขสุ่มหลอกและ RNG ฉันใช้ (R's) ใช้เวลา CPU เป็นเมล็ด

ดังนั้นวิธีที่คุณขอทุบตี

for (( i = 1 ; i <= 160 ; i++ )); do
  wait 1 sec    
  qsub myccomputations"${i}".pbs
done

คำตอบ:


54

เพียงใช้sleep 1ใน Bash

for (( i = 1 ; i <= 160 ; i++ )); do
  sleep 1
  qsub myccomputations"${i}".pbs
done

คุณสามารถใช้เลขทศนิยมถ้าคุณต้องการนอนน้อยกว่า 1 วินาที
shellholic

0

หากคุณต้องการบรรลุสิ่งที่หัวข้อของคุณแนะนำคุณควรใช้ 'ที่'

ดู

      man at

สำหรับข้อมูลเพิ่มเติม.


1
ขอบคุณ Olli แน่นอนฉันจะเขียนชื่อใหม่ดังนั้นจึงสอดคล้องกับคำถามสำหรับคำค้นหาในอนาคต
user2413

atจะไม่ระงับการวนซ้ำตามช่วงเวลาที่กำหนด แต่ตั้งค่าโปรแกรม / สคริปต์เพื่อดำเนินการในเวลาที่กำหนด
Soren A
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.