Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Bash सशर्त तर्क में महारत हासिल करें: व्यावहारिक उदाहरणों के साथ if…else स्टेटमेंट का उपयोग करना

Bash स्क्रिप्टिंग Linux में कार्यों को स्वचालित करने के लिए डेवलपर्स के लिए एक महत्वपूर्ण उपकरण है।

Bash स्क्रिप्ट का उपयोग स्थानीय रूप से विकास कार्यों को स्वचालित करने के लिए किया जा सकता है (जैसे डिप्लॉयमेंट के लिए फ़ाइलें अपलोड करना, ऐप्स संकलित करना, या बल्क में छवियों का आकार बदलना), साथ ही सर्वर-साइड कार्यों के लिए (निर्धारित ईमेल भेजना, अंतराल पर डेटा एकत्र करना, या उपकरणों को सूचनाएं भेजना)।

आप किसी अन्य कार्य या वेरिएबल के परिणाम के आधार पर कुछ कार्य चलाना चाहेंगे, और यहीं if … else आपकी मदद करेगा। Bash स्क्रिप्ट में इस निर्णय लेने की प्रक्रिया को कंडीशनल का उपयोग करना कहा जाता है।

यह ट्यूटोरियल Bash में if… else स्टेटमेंट के लिए विवरण और उदाहरण उपयोग प्रदान करेगा।

if स्टेटमेंट का उपयोग करना

एक साधारण if स्टेटमेंट शर्तें सही होने पर अपने निहित कार्यों को निष्पादित करेगा, और यह इस प्रकार दिखता है:

if CONDITIONS; then ACTIONS fi

एक पूर्ण उदाहरण:

#!/bin/bash if [ 2 -lt 3 ]; then echo "2 is less than 3!" fi

ध्यान दें कि:

  • सभी बैश स्क्रिप्ट #!/bin/bash लाइन से शुरू होती हैं
  • -lt ऑपरेटर जांचता है कि पहला मान दूसरे से कम है या नहीं। यदि हम जांचना चाहते हैं कि दूसरा मान पहले से बड़ा है, तो हम -gt का उपयोग करेंगे
  • अधिक तार्किक ऑपरेटर्स के लिए आगे पढ़ें।
  • हम कमांड लाइन पर टेक्स्ट आउटपुट करने के लिए echo कमांड का उपयोग कर रहे हैं
  • if स्टेटमेंट हमेशा fi के साथ समाप्त होते हैं उन्हें समाप्त करने के लिए

else स्टेटमेंट का उपयोग करना

यदि आप शर्तों के एक सेट के आधार पर एक कार्रवाई करना चाहते हैं, और फिर उन शर्तों के विफल होने पर केवल एक अलग कार्रवाई करना चाहते हैं, तो आप else स्टेटमेंट का उपयोग कर सकते हैं:

#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" else echo "$number is not less than 3!" fi

ध्यान दें कि:

  • हम मानों की तुलना करने और टेक्स्ट आउटपुट करने के लिए ऊपर जैसे ही तत्वों का उपयोग कर रहे हैं
  • हम उपयोगकर्ता इनपुट प्राप्त करने के लिए read कमांड का उपयोग कर रहे हैं
  • हम बाद में उपयोग के लिए एक मान स्टोर करने के लिए एक वेरिएबल का उपयोग कर रहे हैं

elif (Else If) स्टेटमेंट का उपयोग करना

कई शर्तों के सेट की जांच करने और प्रत्येक के सही परीक्षण होने पर अलग-अलग कार्रवाई करने के लिए, elif (else if) स्टेटमेंट का उपयोग करें:

#!/bin/bash echo -n "Enter number: " read number if [ $number -lt 3 ]; then echo "$number is less than 3!" elif [ $number -eq 3]; then echo "$number is equal to 3!" else echo "$number is not less than 3!" fi

if स्टेटमेंट में एकाधिक शर्तें

यदि आपके पास कई शर्तें हैं जिन्हें आप जांचना चाहते हैं, तो आप तय करने के लिए && (AND) और || (OR) ऑपरेटर्स का उपयोग कर सकते हैं कि कार्रवाई की जानी चाहिए या नहीं

#!/bin/bash echo -n "Enter number: " read number if [[ $number -lt 3 ]] && [[ $number -lt 0 ]]; then echo "$number is less than three and is negative" elif [[ $number -lt 3 ]] || [[ $number -gt 6 ]]; then echo "$number is not negative, but is less than 3 or greater than 6" else echo "$number is greater than3 and less than 6" fi

स्टेटमेंट नेस्टिंग

आप if स्टेटमेंट को अन्य if स्टेटमेंट के अंदर रख सकते हैं:

#!/bin/bash echo -n "Enter number: " read number if [$number -gt 3]; then echo "$number is greater than 3" if [$number -gt 6]; then echo "$number is also greater than 6" else echo "$number is not also greater than 6" fi fi

तुलना ऑपरेटर्स

ऊपर के उदाहरणों में, हमने -lt (कम), -gt (अधिक), और = (बराबर) ऑपरेटर्स का उपयोग किया है। यहां कुछ अन्य आमतौर पर उपयोग किए जाने वाले तार्किक ऑपरेटर्स हैं:

संख्याओं की तुलना

$number1 -eq $number2 : Returns true if the variables are equal $number1 -gt $number2 : Returns true if $number1 is greater than $number2 $number1 -ge $number2 : Returns true if $number1 is equal to or greater than $number2 $number1 -lt $number2 : Returns true if $number1 is less than $number2 $number1 -le $number2 : Returns true if $number1 is equal to or less than $number2 

स्ट्रिंग्स की तुलना

$string1 = $string2 : Returns true if $string1 and $string2 are equal $string1 != $string2 : Returns true if $string1 and $string2 are not equal 

ऊपर दिखाए अनुसार, तुलना अभिव्यक्ति के परिणाम को उलटने के लिए, उसके सामने ! (NOT) ऑपरेटर रखें, उदाहरण के लिए, *!= का अर्थ NOT EQUALS है।

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

आपको उन वेरिएबल को भी कोट्स में लपेटना चाहिए जिनमें स्ट्रिंग्स हों ताकि यह सुनिश्चित हो सके कि उनकी गलत व्याख्या नहीं की जाती है:

#!/bin/bash echo -n "Enter string: " read string if ["$string" = "hello there!"] echo "You said hello there!" fi

फ़ाइलों या निर्देशिकाओं की स्थिति जांचना

-d $filepath : Returns true if the $filepath exists and is a directory -e $filepath : Returns true if the $filepath exists regardless of whether it's a file or directory -f $filepath : Returns true if the $filepath exists and is a file -h $filepath : Returns true if the $filepath exists and is a symbolic link -r $filepath : Returns true if the $filepath exists and is readable -w $filepath : Returns true if the $filepath exists and is writable -x $filepath : Returns true if the $filepath exists and is executable 

निष्कर्ष

अपने खुद के Bash स्क्रिप्ट बनाने से आपका बहुत समय बच सकता है, और एक बार जब आप मूल बिल्डिंग ब्लॉक्स जान लेते हैं तो उन्हें लिखना काफी सरल होता है।

if… else स्टेटमेंट आपको यह नियंत्रित करने की अनुमति देते हैं कि आपका स्क्रिप्ट उपयोगकर्ता इनपुट या फ़ाइलों की स्थिति पर कैसे प्रतिक्रिया करता है।

अधिक सीखने के लिए हमारे अन्य Bash लेख देखें!


  1. Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड Ruby के grep मेथड में महारत: कोड उदाहरणों के साथ एक व्यावहारिक गाइड

    आइए grep मेथड के बारे में बात करते हैं। यह मेथड आपके लिए क्या कर सकता है? आप enumerable ऑब्जेक्ट्स को फ़िल्टर करने के लिए Grep का उपयोग कर सकते हैं, जैसे Arrays और Ranges। "लेकिन select पहले से ही ऐसा करता है!" हाँ, लेकिन grep अलग तरीके से काम करता है और अलग परिणाम उत्पन्न करता है। आइए कुछ

  1. Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण

    Linux में watch कमांड एक काम करता है – एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहाँ इसका उपयोग कैसे करें। watch कमांड सिंटैक्स watch कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: OPTIONS नीचे दी गई तालिका से विकल्पों की

  1. एक्सेल VBA में टेबल रेफरेंसिंग में महारत: 20 सिद्ध तकनीकें एक्सेल VBA में टेबल रेफरेंसिंग में महारत: 20 सिद्ध तकनीकें

    बड़े डेटासेट वाली एक्सेल वर्कबुक में, पूरे रेंज के बजाय उसके नाम से टेबल को संदर्भित करना सुविधाजनक हो सकता है। एक्सेल में VBA का उपयोग करना किसी भी ऑपरेशन को करने का सबसे तेज़, सबसे विश्वसनीय और सबसे कुशल तरीका है। यदि आप एक्सेल VBA के साथ टेबल को कैसे संदर्भित करें जानने के लिए विशेष तरकीबें ढूंढ