एंड्रॉयड

बैश if..else स्टेटमेंट

Conditional execution - Hindi

Conditional execution - Hindi

विषयसूची:

Anonim

निर्णय लेना कंप्यूटर प्रोग्रामिंग की सबसे बुनियादी अवधारणाओं में से एक है। किसी भी अन्य प्रोग्रामिंग भाषा की तरह, if , if..else , if..elif..else और नेस्टेड है if बश में कथनों का उपयोग एक निश्चित स्थिति के आधार पर कोड निष्पादित करने के लिए किया जा सकता है।

इस ट्यूटोरियल में, हम आपको बैश के बेसिक्स के माध्यम से चलेंगे if स्टेटमेंट्स और आपको अपनी शेल स्क्रिप्ट में उनका उपयोग करने का तरीका दिखाते हैं।

if कथन

बैश if सशर्त अलग-अलग रूप हो सकते हैं। सबसे बुनियादी if कथन निम्न रूप लेता है:

if TEST-COMMAND then STATEMENTS fi

if स्टेटमेंट की शुरुआत सशर्त एक्सप्रेशन और then कीवर्ड के then कीवर्ड से होती है। fi कीवर्ड के साथ स्टेटमेंट समाप्त होता है।

यदि TEST-COMMAND True मूल्यांकन करती है, तो STATEMENTS निष्पादित हो जाते हैं। यदि TEST-COMMAND रिटर्न False हो जाता है, तो कुछ भी नहीं होता है, STATEMENTS को अनदेखा कर दिया जाता है।

सामान्य तौर पर, हमेशा अपने कोड को इंडेंट करना और रिक्त लाइनों के साथ अलग-अलग कोड ब्लॉक करना एक अच्छा अभ्यास है। ज्यादातर लोग 4-स्पेस या 2-स्पेस इंडेंटेशन का उपयोग करना चुनते हैं। संकेत और रिक्त लाइनें आपके कोड को अधिक पठनीय और व्यवस्थित बनाती हैं।

आइए निम्न उदाहरण स्क्रिप्ट देखें जो यह जांचता है कि क्या दी गई संख्या 10 से अधिक है।

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

फ़ाइल में कोड सहेजें और कमांड लाइन से चलाएं:

bash test.sh

स्क्रिप्ट आपको एक नंबर दर्ज करने के लिए संकेत देगा। यदि उदाहरण के लिए, आप 15 दर्ज करते हैं, तो test कमांड true मूल्यांकन करेगी क्योंकि 15 10 से अधिक है, और then खंड के अंदर echo कमांड निष्पादित की जाएगी।

The variable is greater than 10.

if..else स्टेटमेंट

द बैश if..else स्टेटमेंट निम्न रूप लेता है:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

यदि TEST-COMMAND True मूल्यांकन करती है, तो STATEMENTS1 निष्पादित किया जाएगा। अन्यथा, यदि TEST-COMMAND False रिटर्न देता है, तो STATEMENTS2 निष्पादित किया जाएगा। आपके पास बयान में केवल एक else खंड हो सकता है।

चलिए पिछले उदाहरण स्क्रिप्ट में एक else क्लॉज जोड़ते हैं:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else स्टेटमेंट

बैश if..elif..else स्टेटमेंट निम्न रूप लेता है:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

यदि TEST-COMMAND1 True मूल्यांकन करता है, तो STATEMENTS1 निष्पादित किया जाएगा। यदि TEST-COMMAND2 True मूल्यांकन करता है, तो STATEMENTS2 निष्पादित किया जाएगा। यदि परीक्षण आदेशों में से कोई भी True मूल्यांकन नहीं करता है, तो STATEMENTS2 निष्पादित किया जाता है।

आप बयान में एक या एक से अधिक elif क्लाज रख सकते हैं। else खंड वैकल्पिक है।

क्रमवार मूल्यांकन किया जाता है। एक बार जब कोई शर्त वापस आ जाती है तो True कि शेष शर्तें निष्पादित नहीं की जाती हैं और यदि प्रोग्राम स्टेटमेंट नियंत्रण के अंत में होता है।

आइए पिछली स्क्रिप्ट में एक elif क्लॉज जोड़ें:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

if कथन

बैश आप बयान if बयान के भीतर घोंसला करने की अनुमति देता है। if स्टेटमेंट दूसरे के अंदर है if आप कई जगह रख सकते हैं।

निम्न स्क्रिप्ट आपको तीन नंबर दर्ज करने के लिए प्रेरित करेगी और तीन नंबरों में से सबसे बड़ी संख्या को प्रिंट करेगी।

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

यहाँ कैसे उत्पादन की तरह दिखेगा:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. बयानों का उपयोग करने के बजाय नेस्टेड if पर, आमतौर पर केस स्टेटमेंट का उपयोग करना अधिक कुशल होता है।

कई शर्तें

तार्किक OR और AND ऑपरेटर, if कथनों में कई शर्तों का उपयोग करने की अनुमति देते हैं।

यहां तीन नंबरों के बीच सबसे बड़ी संख्या को प्रिंट करने के लिए स्क्रिप्ट का एक और संस्करण है। इस संस्करण में, नेस्टेड के बजाय if कथन हैं, तो हम तार्किक AND ( && ) ऑपरेटर का उपयोग करेंगे।

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

टेस्ट ऑपरेटर्स

बैश में, test कमांड निम्नलिखित सिंटैक्स रूपों में से एक लेता है:

test EXPRESSION]

परीक्षण अभिव्यक्ति को नकारने के लिए तार्किक NOT ( ! ) ऑपरेटर का उपयोग करें। जब तार की तुलना हमेशा किसी भी शब्द को विभाजित या ग्लोबिंग से बचने के लिए सिंगल या डबल कोट्स का उपयोग करते हैं।

नीचे कुछ सबसे अधिक इस्तेमाल किए जाने वाले ऑपरेटर हैं:

  • -n - VAR की लंबाई शून्य से अधिक होने पर सच है। -z VAR - सच है अगर VAR खाली है। STRING1 = STRING2 - सही [STRING1 और STRING2 बराबर हैं। STRING1 != STRING2 - ट्रू STRING1 और STRING2 समान नहीं हैं। INTEGER1 -eq INTEGER2 - True INTEGER1 और INTEGER2 बराबर हैं। INTEGER1 -gt INTEGER2 - True INTEGER1, INTEGER2 से अधिक है। INTEGER1 -lt INTEGER2 - True INTEGER1, INTEGER2 से कम है। INTEGER1 -ge INTEGER2 - सच्चा INTEGER1, INTEGER2 के बराबर या उससे अधिक है। INTEGER1 -le INTEGER2 - INTEGER2 की तुलना में सच्चा INTEGER1 बराबर या कम है। -h FILE - सही है अगर फ़ाइल मौजूद है और एक प्रतीकात्मक लिंक है। -r FILE - सही है अगर फ़ाइल मौजूद है और पठनीय है। -w FILE - सही है अगर फ़ाइल मौजूद है और लेखन योग्य है। -x FILE - सही है अगर फ़ाइल मौजूद है और निष्पादन योग्य है। -d FILE - सही है अगर फ़ाइल मौजूद है और एक निर्देशिका है। -e FILE - अगर फील मौजूद है और टाइप (नोड, डायरेक्टरी, सॉकेट आदि) की परवाह किए बिना सही है। -f FILE - सही है अगर फ़ाइल मौजूद है और एक नियमित फ़ाइल है (निर्देशिका या उपकरण नहीं)।

निष्कर्ष

if , if..else और if..elif..else कथन आपको दी गई शर्तों का मूल्यांकन करके बैश स्क्रिप्ट के निष्पादन के प्रवाह को नियंत्रित करने की अनुमति देते हैं।

बश टर्मिनल