बैश स्क्रिप्ट लाइनों का अर्थ # $ से शुरू होता है?


13

मुझे यह bashस्क्रिप्ट GitHub पर मिली जिसे मैं अपने काम के लिए उपयोग करना चाहता हूं। मेरा प्रश्न निम्नलिखित है: 2 से 5 की पंक्तियों का क्या अर्थ है? क्या वे सिर्फ टिप्पणी कर रहे हैं या वे किसी उद्देश्य की पूर्ति करते हैं?

#!/bin/bash
#$ -l h_rt=72:00:00
#$ -V
#$ -N index_calc
#$ -j y

source ~/modules.sh

cd $1

l_file=`find . -name 'L*stack' -type f`
for l in $l_file; do
    echo "Running on file:"
    echo $l
      extract=${l:0:45}
    name=${extract}_index.tif
    echo "Name of index stack:"
    echo $name
    echo "Executing code..."
    ~/Documents/misc/spectral/transforms.py \
    -v $l $name evi ndvi nbr ndmi 

done

echo "Done!"

जवाबों:


19

जिन रेखाओं के साथ शुरुआत होती है, #$वे विकल्प हैं qsub, एक कमांड जो SGE क्लस्टर में एक जॉब सबमिट करने के लिए उपयोग की जाती है, एक शेड्यूलिंग सिस्टम इस विवरण में समझाया गया है :

BIMSB (जिसे जल्द ही MAX कहा जाता है) क्लस्टर वातावरण का उपयोग करना आपकी नौकरी प्रस्तुत करने के लिए यूनिक्स / लिनक्स वातावरण का उपयोग करने के समान है (जैसे आपकी स्क्रिप्ट या अन्य सॉफ़्टवेयर चलाना)। अंतर यह है कि आपको पहले से आवश्यक संसाधनों को निर्दिष्ट करने की आवश्यकता है। क्लस्टर को SGE (Sun Grid Engine Software) द्वारा नियंत्रित किया जाता है जो कतारों और संसाधनों को व्यवस्थित करता है। जब सीमित कम्प्यूटेशनल संसाधनों को कई लोगों द्वारा साझा किया जाता है, तो इस प्रकार की समय-निर्धारण प्रणाली आवश्यक है। और, यह उपयोगी होगा यदि आप कई नमूनों के लिए संरेखण चला रहे हैं और उन कार्यों (नौकरियों) को कई मशीनों या सीपीयू में वितरित करना चाहते हैं, या जब सांख्यिकीय सिमुलेशन चला रहे हैं जो लंबे समय तक कई सीपीयू पर चलने की आवश्यकता है। इन मामलों के लिए और कई एक जैसे,

SGE "जॉब शेड्यूलिंग" करेगा। इसका मतलब है कि आप अपनी सभी नौकरियों को जमा कर सकते हैं और एसजीई उन्हें पंक्तिबद्ध करेगा और आपके द्वारा अनुरोधित संसाधन उपलब्ध होने पर उन्हें चलाएगा। SGE "लोड बैलेंसिंग" को भी प्राप्त करेगा जहाँ नौकरियों को वितरित किया जाएगा ताकि विशिष्ट नोड्स ओवरलोड न हों। इसके अलावा, SGE आपको "नौकरी की निगरानी और लेखांकन" करने की अनुमति देगा जो तब उपयोगी होगा जब आप जांचना चाहते हैं कि क्या आपकी नौकरी चल रही है, और यदि यह विफल हो गया तो यह आपको समझने में मदद करेगा कि क्या गलत हुआ।

qsubकमांड के सिंटैक्स को उसके मैनपेज पर समझाया गया है , आपकी स्क्रिप्ट निम्नलिखित विकल्पों का उपयोग करती है:

  • -l h_rt=<hh:mm:ss> - अधिकतम रन समय (घंटे, मिनट और सेकंड) निर्दिष्ट करें
  • -V - नौकरी के लिए सभी पर्यावरण चर पास करें
  • -N <jobname>- नौकरी का नाम निर्दिष्ट करें। यह आप देखेंगे जब आप उपयोग करते हैं qstat, अपनी नौकरियों की स्थिति की जांच करने के लिए।
  • -j y[es]|n[o] - निर्दिष्ट करता है कि नौकरी की मानक त्रुटि धारा को मानक आउटपुट स्ट्रीम में मिला दिया गया है या नहीं

चूँकि qsub का उपयोग करके किसी कार्य को कैसे सबमिट किया जाता है, यह बताता है कि कोई भी qsubस्क्रिप्ट को सीधे लाइनों में सेट कर सकता है जो इसके साथ शुरू होता है #$। यह qsubकमांड-लाइन पर कमांड के साथ उन्हें पारित करने का एक विकल्प है ।

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