shell - Why is the following bash script not working when called with nohup? -
निम्न की तरह एक स्क्रिप्ट:
#! / Bin / bash समारोह हैलो {echo "नमस्ते विश्व"} नमस्कार ठीक काम करेगा, लेकिन जब मैं इसे
nohup। /myScript.sh के साथ कॉल करता हूं स्क्रिप्ट अब काम नहीं करता है और निम्नलिखित मुद्रित है:
./ myScript.sh: 5: ./myScript.sh: फ़ंक्शन: नहीं मिला हैलो वर्ल्ड ./myScript.sh: 9: ./myScript.sh: सिंटैक्स त्रुटि: "}" अप्रत्याशित मुझे पता है कि इस स्क्रिप्ट के लिए nohup का प्रयोग करने में कोई मतलब नहीं है क्योंकि यह काफी चलाता है जल्दी लेकिन मेरे पास एक और स्क्रिप्ट है जो चलाने के लिए कई घंटों तक ले जा रहा है और मैंने इसमें उस फ़ंक्शन सिंटैक्स का इस्तेमाल किया है क्या यह तय करने का कोई तरीका है?
ध्यान दें कि, आप फ़ंक्शन नाम लिखकर सिर्फ एक लिखते हैं खाली कोष्ठकों की जोड़ी, और कर्ली ब्रैकेट्स में एक शरीर:
#! / Bin / bash हैलो () {गूंजती "हैलो वर्ल्ड"} नमस्कार कुछ गोले, जैसे कि बाश, कार्यों को घोषित करने के लिए फ़ंक्शन कीवर्ड भी स्वीकार करते हैं, लेकिन आपके त्रुटि संदेश के आधार पर, ऐसा लगता है कि आप जिस शेल का उपयोग कर रहे हैं वह इसे स्वीकार नहीं करता है। पोर्टेबिलिटी के लिए, POSIX मानक घोषणापत्र शैली का उपयोग करना सबसे अच्छा होगा। इसका कारण है कि आप स्क्रिप्ट को सीधे चलाने और nohup के तहत स्क्रिप्ट को चलाने में अंतर देखते हैं रिक्त पंक्तियाँ फ़ाइल की शुरुआत में दुभाषिया को निर्दिष्ट करने के लिए, #! फ़ाइल के पहले दो अक्षर होने की आवश्यकता है , अन्यथा यह केवल एक टिप्पणी है ऐसा लगता है कि जब एक बैश खोल से निष्पादित किया जाता है, तो स्क्रिप्ट को बैश द्वारा व्याख्या की जाती है और यह बैश एक्सटेंशन को पहचानती है। लेकिन जब नोहुप से चलाते हैं, तो इसे sh द्वारा व्याख्या की जाती है, जो कुछ सिस्टम पर डैश की तरह अधिक नंगे हड्डियों का खोल होता है जो केवल इसका समर्थन करता है ऊपर POSIX वाक्यविन्यास।
Comments
Post a Comment