बैश स्क्रिप्ट को एक विलंबता के साथ कैसे चलाया जाए (अर्थात प्रत्येक पुनरावृत्तियों में 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.