बैश-स्क्रिप्ट में IF-STATEments कैसे लिखें

आदेश, सिंटेक्स, और उदाहरण

एक if-statement के साथ, जो सशर्त कथन का एक प्रकार है, आप निर्दिष्ट शर्तों के आधार पर विभिन्न कार्रवाइयां कर सकते हैं। यह प्रभावी ढंग से सिस्टम को निर्णय लेने की क्षमता देता है।

If-statement के सबसे सरल रूप का एक उदाहरण होगा:

गिनती = 5 अगर [$ गिनती == 5] तो "$ count" fi गूंजें

इस उदाहरण में, चर "गणना" का उपयोग ऐसी स्थिति निर्दिष्ट करने के लिए किया जाता है जिसका उपयोग if-statement के हिस्से के रूप में किया जाता है। If-statement निष्पादित होने से पहले, चर "गणना" मान को "5" असाइन किया गया है। If-statement तब जांचता है कि "गिनती" का मान "5" है या नहीं। यदि ऐसा है तो "तो" और "fi" कीवर्ड के बीच का विवरण निष्पादित किया जाता है, अन्यथा if-statement के बाद कोई भी कथन निष्पादित किया जाता है। कीवर्ड "फाई" पिछड़ा वर्तनी है "अगर"। बैश स्क्रिप्टिंग भाषा एक जटिल अभिव्यक्ति, जैसे if-statement या केस-स्टेटमेंट के अंत को चिह्नित करने के लिए इस सम्मेलन का उपयोग करती है।

"गूंज" कथन इस तर्क में, टर्मिनल विंडो में परिवर्तनीय "गिनती" का मान प्रिंट करता है। If-statement के कीवर्ड के बीच कोड का इंडेंटेशन पठनीयता में सुधार करता है लेकिन आवश्यक नहीं है।

यदि आपके पास ऐसी स्थिति है जहां कोड का एक टुकड़ा केवल तभी निष्पादित किया जाना चाहिए जब कोई शर्त सत्य न हो, तो आप इस उदाहरण में "if" शब्द को if-statement में उपयोग कर सकते हैं:

गिनती = 5 अगर [$ गिनती == 5] तो "$ count" गूंजें और गूंज करें "गिनती 5 नहीं है" fi

यदि स्थिति "$ count == 5" सत्य है, तो सिस्टम चर "मान" के मान को प्रिंट करता है, अन्यथा यह स्ट्रिंग प्रिंट करता है "गिनती 5 नहीं है"।

यदि आप कई स्थितियों के बीच अंतर करना चाहते हैं, तो आप "elif" कीवर्ड का उपयोग कर सकते हैं, जो कि "else if" से लिया गया है, जैसा कि इस उदाहरण में है:

यदि [$ गिनती == 5] तो गूंजें "गिनती पांच है" elif [$ count == 6] फिर गूंज करें "गिनती छः है" और गूंजें "उपरोक्त में से कोई भी नहीं" fi

यदि "गिनती" "5" है, तो सिस्टम प्रिंट करता है "गिनती पांच है"। यदि "गिनती" "5" नहीं है लेकिन "6" है, तो सिस्टम प्रिंट करता है "गिनती छः है"। यदि यह न तो "5" और न ही "6" है, तो सिस्टम "उपर्युक्त में से कोई भी" प्रिंट नहीं करता है।

जैसा कि आपने अनुमान लगाया होगा, आपके पास "elif" खंडों की संख्या हो सकती है। एकाधिक "elif" स्थितियों के साथ एक उदाहरण होगा:

अगर [$ गिनती == 5] तो गूंजें "गिनती पांच है" elif [$ count == 6] फिर गूंज करें "गिनती छः है" elif [$ count == 7] फिर गूंज करें "गिनती सात है" elif [$ count = = 8] फिर गूंज करें "गिनती आठ है" elif [$ count == 9] फिर गूंज करें "गिनती नौ है" और गूंजें "उपरोक्त में से कोई भी नहीं" fi

कई स्थितियों के साथ ऐसे बयान लिखने का एक और कॉम्पैक्ट तरीका केस विधि है। यह कई "elif" खंडों के साथ if-statement के समान कार्य करता है लेकिन अधिक संक्षिप्त है। उदाहरण के लिए, कोड के उपरोक्त टुकड़े को "केस" कथन के साथ फिर से लिखा जा सकता है:

मामले में "$ गिनती" 5) गूंज "गिनती पांच है" ;; 6) गूंज "गिनती छः है" ;; 7) गूंज "गिनती सात है" ;; 8) गूंज "गिनती आठ है" ;; 9) गूंज "गिनती नौ है" ;; *) गूंज "उपर्युक्त में से कोई नहीं" esac

यदि इस उदाहरण में फॉर-लूप या जबकि-लूप के अंदर अक्सर-कथन का उपयोग किया जाता है:

गिनती = 1 किया गया = 0 जबकि [$ गिनती 9] नींद 1 ((गिनती ++)) अगर [$ गिनती == 5] फिर जारी करें "$ count" किया echo समाप्त हो गया

यदि आप बयान देते हैं तो आप घोंसला भी कर सकते हैं। यदि कथन का फॉर्म है तो सबसे सरल नेस्टेड: यदि ... तो ... और ... अगर ... तो ... fi ... fi। हालांकि, अगर कथन कथित जटिलता के साथ घोंसला कर सकता है।

यह भी देखें कि बैश स्क्रिप्ट में तर्क कैसे पारित करें , जो दिखाता है कि कमांड लाइन से पारित पैरामीटर को संसाधित करने के लिए सशर्त का उपयोग कैसे करें।

बैश खोल अन्य प्रोग्रामिंग संरचनाएं प्रदान करता है, जैसे फॉर-लूप , जबकि-लूप , और अंकगणितीय अभिव्यक्तियां