बैश स्क्रिप्ट को एक विलंबता के साथ कैसे चलाया जाए (अर्थात प्रत्येक पुनरावृत्तियों में 1 सेकंड प्रतीक्षा करें)?


28

मेरे पास यह बैश स्क्रिप्ट है;

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

मूल रूप से, मैं पसंद करूंगा यदि प्रत्येक पुनरावृत्ति के बीच 1 सेकंड की देरी हो। कारण यह है कि प्रत्येक पुनरावृत्तियों में, यह प्रोग्राम फ़ाइल mycomputation"${i}$.pbsको हल करने के लिए एक कोर नोड पर भेजता है । प्रेरणा यह है कि इस उदाहरण में हल करने में छद्म यादृच्छिक संख्याओं का उपयोग शामिल है और RNG I उपयोग (R) बीज के रूप में CPU समय का उपयोग करता है।

तो आप किस तरह से बैश से पूछ सकते हैं

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

जवाबों:


54

बस sleep 1बैश में उपयोग करें ।

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

यदि आप 1 सेकंड से कम सोना चाहते हैं तो आप फ्लोटिंग पॉइंट नंबर का उपयोग कर सकते हैं
शेलहोलिक

0

यदि आप अपने विषय का सुझाव देना चाहते हैं, तो आपको 'at' का उपयोग करना चाहिए।

देख

      man at

अधिक जानकारी के लिए।


1
धन्यवाद ओली। वास्तव में, मैं शीर्षक को फिर से लिखूंगा, इसलिए यह भविष्य के प्रश्नों के लिए प्रश्न से मेल खाता है।
user2413

atएक विशिष्ट अवधि के लिए लूप को निलंबित नहीं करेगा, लेकिन एक विशिष्ट समय पर निष्पादन के लिए एक कार्यक्रम / स्क्रिप्ट सेट करें।
सोरेन एक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.