शुरुआती गाइड बाश - चीजों की तुलना करना

08 का 08

शुरुआती गाइड बाश - चीजों की तुलना करना

बाश ट्यूटोरियल - स्ट्रिंग की तुलना।

बाश ट्यूटोरियल के पिछले भाग में हमने सशर्त बयान देखा।

वह गाइड बहुत लंबा था लेकिन वास्तव में केवल तर्क दिखाता था कि तर्क के प्रवाह को कैसे नियंत्रित किया जाए। यह गाइड विभिन्न तरीकों से पता चलता है जिसमें आप चर की तुलना कर सकते हैं।

उपरोक्त छवि इस सप्ताह की मार्गदर्शिका में पहला उदाहरण दिखाती है:

#! / bin / bash

name1 = "गैरी"
NAME2 = "बॉब"

अगर ["$ name1" = "$ name2"]
फिर
गूंज "नाम मिलान"
अन्य
गूंजें "नाम मेल नहीं खाते"
फाई


उपर्युक्त लिपि में मैंने नाम 1 और नाम 2 नामक दो चर परिभाषित किए हैं और उन्हें "गैरी" और "बॉब" मान दिए हैं। चूंकि वेरिएबल्स को उद्धरण चिह्नों के बीच निहित किया जाता है, इसलिए उन्हें स्ट्रिंग वेरिएबल्स कहा जाता है जो ट्यूटोरियल चलते ही अधिक प्रासंगिक हो जाते हैं।

सभी स्क्रिप्ट की तुलना $ name1 और $ name2 के मान की तुलना की जाती है और यदि वे "नाम मिलान" स्ट्रिंग आउटपुट से मेल खाते हैं और यदि वे "नाम मेल नहीं खाते" स्ट्रिंग को आउटपुट नहीं करते हैं।

$ Name1 और $ name2 चर के चारों ओर उद्धरण चिह्न महत्वपूर्ण हैं क्योंकि यदि उनमें से किसी का मान सेट नहीं किया गया है तो स्क्रिप्ट अभी भी काम करेगी।

उदाहरण के लिए यदि $ name1 कभी सेट नहीं किया गया था तो आप "बॉब" के साथ तुलना करेंगे। उद्धरण चिह्नों के बिना आपको = "बॉब" के साथ छोड़ा जाएगा जो स्पष्ट रूप से विफल हो जाता है।

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

अगर ["$ name1"! = "$ name2"]

08 में से 02

शुरुआत करने के लिए शुरुआती गाइड - स्ट्रिंग की तुलना

बाश ट्यूटोरियल - स्ट्रिंग की तुलना।

उपरोक्त उदाहरण में परीक्षण एक ही दो तारों की तुलना करता है और सवाल पूछता है कि गैरी वर्णमाला में बॉब से पहले आती है?

स्पष्ट रूप से जवाब नहीं है।

स्क्रिप्ट ऑपरेटर से कम परिचय (<)। चूंकि ऑपरेटर से कम भी रीडायरेक्शन के लिए उपयोग किया जाता है, इसलिए आपको इसे स्लैश (\) से बचाना होगा, जिसके लिए नीचे की लिपि में "$ name1" \ <"$ name2" की तुलना में कम से कम इसका मतलब है।

उससे कम के विपरीत स्पष्ट रूप से बड़ा है। \ <उपयोग \> का उपयोग करने के बजाय।

उदाहरण के लिए

अगर ["$ name1" \> "$ name2"]

08 का 03

शुरुआत करने के लिए शुरुआती गाइड - स्ट्रिंग की तुलना

बाश ट्यूटोरियल - स्ट्रिंग की तुलना।

यदि आप यह जांचना चाहते हैं कि किसी चर के पास कोई मान है या नहीं, तो आप निम्न परीक्षण का उपयोग कर सकते हैं:

अगर [-एन $ name2]

उपरोक्त लिपि में मैंने परीक्षण किया है कि $ name2 को एक मूल्य दिया गया है और यदि यह संदेश नहीं है "कोई बॉब नहीं है, तो कभी भी बॉब दिखाई नहीं देता"।

08 का 04

शुरुआत करने के लिए शुरुआती गाइड - स्ट्रिंग की तुलना

बाश ट्यूटोरियल - स्ट्रिंग की तुलना।

पिछली स्लाइड पर हमने कवर किया था कि एक चर सेट किया गया है या नहीं। कभी-कभी एक चर सेट हो सकता है लेकिन वास्तव में इसका कोई मूल्य नहीं हो सकता है।

उदाहरण के लिए:

name1 = ""

यह जांचने के लिए कि क्या एक चर के पास मान है या नहीं (यानी शून्य की लंबाई है) निम्नानुसार उपयोग करें:

अगर [-z $ name1]

उपरोक्त स्क्रिप्ट में मैंने $ name1 को शून्य लंबाई स्ट्रिंग पर सेट किया है और उसके बाद -z का उपयोग करके इसकी तुलना की है। यदि $ name1 लंबाई में शून्य है तो संदेश "शाम के लिए गैरी बाहर चला गया है" प्रदर्शित किया जाएगा।

05 का 08

शुरुआती गाइड बाश - तुलना संख्याएं

बाश ट्यूटोरियल - संख्याओं की तुलना।

इस प्रकार अब तक सभी तुलना तारों के लिए रही है। संख्याओं की तुलना करने के बारे में क्या?

उपरोक्त स्क्रिप्ट दो संख्याओं की तुलना करने का एक उदाहरण दिखाती है:

#! / bin / bash

एक = 4
ख = 5

अगर [$ ए = $ बी]
फिर
गूंज "4 = 5"
अन्य
गूंज "4 बराबर 5 नहीं है"
फाई

एक चर होने के लिए एक चर सेट करने के लिए इसे बिना उद्धरण चिह्नों के सेट करें। फिर आप बराबर चिह्न वाले संख्याओं की तुलना कर सकते हैं।

हालांकि मैं दो नंबरों की तुलना करने के लिए निम्न ऑपरेटर का उपयोग करना पसंद करता हूं:

अगर [$ a -eq $ b]

08 का 06

शुरुआती गाइड बाश - तुलना संख्याएं

बाश ट्यूटोरियल - संख्याओं की तुलना।

यदि आप तुलना करना चाहते हैं कि कोई संख्या किसी अन्य संख्या से कम है या नहीं, तो आप ऑपरेटर (<) से कम का उपयोग कर सकते हैं। तारों के साथ आपको स्लैश के साथ ऑपरेटर से कम भागना होगा। (\ <)।

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

उदाहरण के लिए:

अगर [$ a -lt $ b]

अगर [$ a -le $ b]

अगर [$ a -ge $ b]

अगर [$ ए-जीटी $ बी]

08 का 07

शुरुआती गाइड बाश - तुलना संख्याएं

बाश ट्यूटोरियल - संख्याओं की तुलना।

अंततः इस मार्गदर्शिका के लिए, यदि आप यह जांचना चाहते हैं कि दो संख्याएं अलग हैं या नहीं, तो आप ऑपरेटरों से कम से कम (<>) या निम्नानुसार उपयोग कर सकते हैं:

अगर [$ a <> $ b]

अगर [$ ए-एक $ बी]

08 का 08

शुरुआती गाइड बाश - तुलना ऑपरेटर - सारांश

यदि आप इस गाइड के पहले तीन हिस्सों को याद कर चुके हैं तो आप निम्न लिंक पर क्लिक करके उन्हें पा सकते हैं:

गाइड के अगले भाग में मैं अंकगणित को कवर करूँगा।