मैं एक खोल स्क्रिप्ट foo.sh
जो सामग्री के साथ एक qsub काम है। अगर मैं qsub foo.sh a b को कॉल करता हूं तो पहला तर्क सही ढंग से संसाधित हो जाता है और कमांड लाइन को 'ए' के रूप में प्रतिबिंबित किया जाता है। हालांकि, मुझे नहीं पता कि दूसरे मामले में '# $ -N' से शुरू होने वाले तर्क को कैसे पास किया जाए। इस मामले में $ 2 का मूल्यांकन 'बी' के लिए नहीं किया जाता है लेकिन वास्तव में '$ 2' सेट किया जाता है। सहायता के लिए बहुत आभार होगा।तर्क .sh स्क्रिप्ट में गुजर
उत्तर
नहीं, तुम नहीं कर सकते हैं। लाइन की शुरुआत में # यह बनाता है कि $ 2 को स्क्रिप्ट के तर्क द्वारा प्रतिस्थापित नहीं किया जाएगा। जो करने का प्रयास कर रहे हैं वह करने का तरीका
qsub foo.sh -N <name>
मेरे लिए मज़ेदार काम करता है।
मैं नहीं जानता कि क्या एन आदेश का मतलब है, लेकिन
#!/bin/bash -l
#$ -S /bin/bash
#$ -N $2
echo $1
echo $2
जब sh foo.sh a b
से बुलाया तुरंत गूँज
a
b
आपके उत्तर के लिए धन्यवाद। लेकिन मैंने पहले ही उल्लेख किया है कि इको कमांड में गुजरने का तर्क ठीक काम करता है। हालांकि, दूसरे मामले में '# $ -N $ 2' $ 2 का मूल्यांकन 'बी' के रूप में नहीं किया जाता है।कुछ संदर्भ देने के लिए: यह सूर्य ग्रिड इंजन के लिए qsub स्क्रिप्ट है और '-N' विकल्प नौकरी का नाम सेट करता है। तो इस मामले में नौकरी '$ 2' के रूप में सेट की जाएगी और 'बी' के रूप में वांछित नहीं होगी। तो सामान्य सवाल यह है कि मैं '# $-SomParameterOption' $ 2 के पैरामीटर कैसे पास करूं? धन्यवाद। – user1137731
- 1. sh स्क्रिप्ट
- 2. एक तर्क गुजर instanceof
- 3. sh
- 4. sh
- 5. क्लोजर में, sh
- 6. clojure में तर्क के रूप में कार्य गुजर
- 7. क्रॉन जॉब्स के लिए .sh स्क्रिप्ट में अच्छा आदेश
- 8. एक भी वेक्टर में एक समारोह के लिए तर्क गुजर
- 9. DailogFragment - getArguments/setArguments - क्यों एक बंडल में तर्क गुजर?
- 10. WCF सेवा में शब्दकोश गुजर
- 11. बैश: पासिंग स्क्रिप्ट तर्क
- 12. शैल स्क्रिप्ट तर्क
- 13. $ {1: + "$ @"}/bin/sh
- 14. गुजर 'स्थिरांक इस तर्क को छोड़ देता है क्वालिफायर [-fpermissive]
- 15. अंतर्निहित तर्क define_method (द्वारा परिभाषित विधि से सुपर के गुजर)
- 16. बूलियन तर्क सही ढंग से गुजर नहीं रहा
- 17. pthread_create काम नहीं कर रहा है। गुजर तर्क 3 चेतावनी
- 18. स्क्रिप्ट के लिए बूलियन तर्क
- 19. OCaml निरंतरता गुजर शैली
- 20. बैश/sh अगर कथन वाक्यविन्यास
- 21. sh या bash स्क्रिप्ट से विंडोज बैच स्क्रिप्ट को चलाएं/चलाएं
- 22. जावास्क्रिप्ट में एक regexp चर गुजर
- 23. गुजर हिस्सा
- 24. sh बराबर __FILE__
- 25. .sh OR .bin
- 26. perl बैकटिक्स: sh
- 27. गुजर डेटा symfony2
- 28. PHP से .sh फ़ाइल कैसे चलाएं?
- 29. यूनिक्स शैल स्क्रिप्ट में "#!/Bin/sh" पंक्ति का अर्थ क्या है?
- 30. आप शैल स्क्रिप्ट चर का उपयोग sed के तर्क के रूप में कैसे करते हैं?
मुझे लगता है कि आपको '# $ -N $ 2'' का अर्थ समझाने की आवश्यकता है। यदि आपकी स्क्रिप्ट एक बोर्न शेल स्क्रिप्ट है तो यह एक टिप्पणी है (यह '#' से शुरू होती है) लेकिन आपको इसका मतलब कुछ और लगता है। – Celada
मैंने पहले ही इसे समझाने की कोशिश की है, सप्तमस प्राइम को टिप्पणी देखें। इस विकल्प का उपयोग क्लस्टर पर्यावरण में नौकरी नाम सेट करने के लिए किया जाता है, उदा। देखें: http://www.clusterresources.com/torquedocs/commands/qsub.shtml। सच है, आमतौर पर # टिप्पणियों के लिए प्रयोग किया जाता है। लेकिन जब वाक्यविन्यास # $ -अर्ग्यूमेंट वैल्यू में उपयोग किया जाता है तब नहीं किया जाता है। धन्यवाद। – user1137731
यदि प्रश्न qsub के लिए विशिष्ट शैल मेटासिंटेक्स से संबंधित है, तो आपको उस प्रश्न में उल्लेख किया जाना चाहिए था। वैसे भी, आपके द्वारा भेजा गया लिंक '# पीबीएस' निर्देश के बारे में बात करता है लेकिन इसमें '# $' का उल्लेख नहीं है, इसलिए मुझे अभी भी पता नहीं है कि इसका क्या अर्थ है। किसी भी मामले में, ऐसा लगता है कि उन 'qsub' निर्देशों का अर्थ 'qsub' द्वारा ही किया गया है ** ** स्क्रिप्ट चलाए जाने से पहले ** इसलिए यह समझ में आ जाएगा कि स्क्रिप्ट को पारित होने के बाद जो तर्क पारित किए जाते हैं, वे प्रवेश नहीं करते हैं ऐसे निर्देशों की प्रसंस्करण में। मुझे लगता है कि आपको नौकरी के नाम के लिए एक स्थिर स्ट्रिंग की आपूर्ति करनी होगी। – Celada