लिनक्स में कार्यों को स्वचालित करने के लिए डेवलपर्स के लिए बैश स्क्रिप्टिंग एक महत्वपूर्ण उपकरण है।
बैश स्क्रिप्ट का उपयोग स्थानीय रूप से विकास कार्यों को स्वचालित करने के लिए किया जा सकता है (जैसे तैनाती के लिए फ़ाइलें अपलोड करना, ऐप्स संकलित करना, या थोक में छवियों का आकार बदलना), साथ ही साथ सर्वर-साइड कार्यों के लिए (निर्धारित ईमेल भेजना, अंतराल पर डेटा एकत्र करना, या डिवाइस पर सूचनाएं भेजना) )।
आप किसी अन्य कार्य या चर के परिणाम के आधार पर कुछ कार्यों को चलाना चाहेंगे, और यहीं पर यदि … और आपकी सहायता करेगा। बैश स्क्रिप्ट में निर्णय लेने की इस प्रक्रिया को सशर्त का उपयोग करना कहा जाता है ।
यह ट्यूटोरियल अगर… और . के लिए विवरण और उदाहरण उपयोग प्रदान करेगा बैश में बयान।
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 का इस्तेमाल करेंगे
- अधिक तार्किक ऑपरेटरों की सूची के लिए आगे पढ़ें।
- हम इको . का इस्तेमाल कर रहे हैं कमांड लाइन को टेक्स्ट आउटपुट करने के लिए कमांड
- अगर कथन हमेशा fi . के साथ समाप्त होते हैं उन्हें समाप्त करने के लिए
अन्य का उपयोग करना कथन
अगर आप शर्तों के एक सेट के आधार पर कोई कार्रवाई करना चाहते हैं, और फिर एक अलग कार्रवाई केवल करना चाहते हैं यदि वे शर्तें विफल हो जाती हैं, तो आप अन्य . का उपयोग कर सकते हैं कथन:
#!/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
ध्यान दें कि:
- मानों की तुलना करने और टेक्स्ट को आउटपुट करने के लिए हम अब भी ऊपर वाले तत्वों का ही उपयोग कर रहे हैं
- हम उपयोग कर रहे हैं पढ़ें उपयोगकर्ता इनपुट प्राप्त करने के लिए आदेश
- हम बाद में उपयोग के लिए एक मान संग्रहीत करने के लिए एक चर का उपयोग कर रहे हैं
elif . का उपयोग करना (अन्यथा अगर) कथन
शर्तों के कई सेटों की जांच करने और प्रत्येक परीक्षण के सही होने पर अलग-अलग कार्रवाइयां करने के लिए, elif . का उपयोग करें (अन्यथा अगर) कथन:
#!/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
एक से अधिक शर्तें अगर . में कथन
अगर आपकी कई शर्तें हैं जिन्हें आप जांचना चाहते हैं, तो आप && . का उपयोग कर सकते हैं (और ) और || (या ) ऑपरेटरों को यह तय करने के लिए कि क्या कार्रवाई की जानी चाहिए
#!/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
स्टेटमेंट नेस्टिंग
आप अगर . रख सकते हैं दूसरे के अंदर बयान अगर बयान:
#!/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
निष्कर्ष
अपनी खुद की बैश स्क्रिप्ट बनाने से आपका काफी समय बच सकता है, और बुनियादी बिल्डिंग ब्लॉक्स को जानने के बाद लिखना काफी आसान है।
अगर... और कथन आपको यह नियंत्रित करने की अनुमति देते हैं कि आपकी स्क्रिप्ट उपयोगकर्ता इनपुट या फ़ाइलों की स्थिति पर कैसे प्रतिक्रिया करती है।
अधिक जानने के लिए हमारे अन्य बैश लेख देखें!