Beginners to BASH - तुलनेत गोष्टी

01 ते 08

Beginners to BASH - तुलनेत गोष्टी

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

बाश ट्युटोरियलच्या आधीच्या भागात आम्ही सशर्त स्टेटमेंट बघितले.

त्या मार्गदर्शिका खूपच लांब होत्या परंतु प्रत्यक्षात केवळ तर्कशास्त्राचा प्रवाह कसा नियंत्रित करावा हे दर्शविले. या मार्गदर्शकामध्ये आपण वेगळ्या पद्धतीने फरक तुलना करू शकता.

उपरोक्त प्रतिमा या आठवड्याच्या संकेतस्थळावर प्रथम उदाहरण दर्शविते:

#! / bin / bash

नाव 1 = "गॅरी"
name2 = "bob"

जर ["$ name1" = "$ name2"]
नंतर
ईको "नावे जुळवा"
दुसरे
प्रतिध्वनी "नावे जुळत नाहीत"
फाई


वरील स्क्रिप्टमध्ये मी name1 आणि name2 नावाची दोन व्हेरिएबल्स परिभाषित केली आहेत आणि त्यांना "गॅरी" आणि "बॉब" हे व्हॅल्यू दिले आहे. व्हेरिएबल्स अवतरण चिन्हात समाविष्ट केल्याप्रमाणे त्यास स्ट्रिंग व्हेरिएबल्स असे म्हणतात जे ट्युटोरियल चालूच राहतात.

सर्व स्क्रिप्ट $ name1 आणि $ name2 च्या मूल्याशी तुलना करते आणि जर ते स्ट्रिंग "नावे जुळणी" चे आउटपुट जुळविते आणि जर ते स्ट्रिंग "नावे जुळत नाहीत" चे उत्पादन करत नाहीत तर

$ 1 आणि $ name2 व्हेरिएबल्सचे अवतरण चिन्हे महत्वाचे आहेत कारण जर त्यांच्यापैकी एकाची किंमत सेट केली नसेल तर स्क्रिप्ट अद्याप कार्य करेल.

उदाहरणार्थ $ name1 कधीही सेट केलेले नसल्यास आपण "बॉब" सह तुलना करू "" असाल. अवतरण चिन्हाशिवाय आपल्याला = "बॉब" असे सोडले जाईल जे स्पष्टपणे अपयशी ठरते.

आपण खालील प्रमाणे समान न परिभाषित करण्यासाठी == संकेत वापरू शकता:

जर ["$ name1"! = "$ name2"]

02 ते 08

सुरुवातीस मार्गदर्शक तत्त्वे - स्ट्रिंग तुलना

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

वरील उदाहरणामध्ये टेस्ट समान दोन स्ट्रिंग्सची तुलना करतात आणि गॅरी वर्णमाला मध्ये बॉब आधी प्रश्न विचारतो?

स्पष्टपणे उत्तर नाही आहे.

स्क्रिप्ट ऑपरेटर (<) पेक्षा कमी ओळखते. जसे ऑपरेटर पेक्षा कमी रीडायरेक्शनसाठी वापरला जातो त्याचप्रमाणे आपण स्लॅश (\) च्या मदतीने त्यापेक्षा कमी असणे आवश्यक आहे कारण वरील लिपीमध्ये "$ name1" \ "$ name2" ची तुलना केली आहे.

पेक्षा कमी पेक्षा उलट जाहीरपणे जास्त आहे. \ वापरण्याऐवजी.

उदाहरणार्थ

["$ name1" \> "$ name2"]

03 ते 08

सुरुवातीस मार्गदर्शक तत्त्वे - स्ट्रिंग तुलना

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

आपण एखाद्या व्हेरिएबलला मूल्य आहे किंवा नाही हे तपासू इच्छित असल्यास आपण खालील चाचणी वापरू शकता:

जर [-n $ name2]

वरील स्क्रिप्टमध्ये मी चाचणी केली आहे की $ name2 ला एक व्हॅल्यू दिलेली आहे की नाही आणि जर "संदेश आहे नाही बॉब आहे, तेथे एकही बॉब दिसत नव्हता"

04 ते 08

सुरुवातीस मार्गदर्शक तत्त्वे - स्ट्रिंग तुलना

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

मागील स्लाईडवर आपण हे व्हेरिएबल सेट केले आहे किंवा नाही हे समाविष्ट केले आहे. काहीवेळा जरी एक वेरियेबल सेट केले गेले असले तरी कदाचित त्याचे मूल्य नसेल

उदाहरणार्थ:

नाव 1 = ""

व्हेरिएबलची व्हॅल्यू किंवा नाही (म्हणजेच शून्याची लांबी) किंवा नाही हे तपासण्यासाठी- -Z खालीलप्रमाणे आहे:

जर [-z $ name1]

वरील स्क्रिप्टमध्ये मी $ 1 ला शून्य लांबीचे स्ट्रिंग सेट केले आहे आणि नंतर -z वापरून त्याची तुलना केली आहे. जर $ name1 शून्याची लांबी असेल तर "गॅरी संध्याकाळी बाहेर पडली" असा संदेश प्रदर्शित केला जाईल.

05 ते 08

सुरुवातीस मार्गदर्शिका - तुलना क्रमांक बास

बाश ट्यूटोरियल - तुलना क्रमांक

आतापर्यंत सर्व भेद तार्यांसाठी आहेत. संख्या तुलना करण्याबद्दल काय?

वरील स्क्रिप्ट दोन नंबर्सची तुलना करण्याचा एक उदाहरण दर्शविते:

#! / bin / bash

ए = 4
ब = 5

जर [$ a = $ b]
नंतर
प्रतिध्वनी "4 = 5"
दुसरे
echo "4 is equal 5 नाही"
फाई

क्रमांक देण्यासाठी एक वेरियेबल सेट करण्यासाठी तो केवळ अवतरण चिन्हाशिवाय सेट करा. त्यानंतर आपण समांतर चिन्हात संख्येची तुलना करू शकता.

मी दोन नंबरची तुलना करण्यासाठी पुढील ऑपरेटर वापरण्यास प्राधान्य देतो:

जर [$ a -q $ b]

06 ते 08

सुरुवातीस मार्गदर्शिका - तुलना क्रमांक बास

बाश ट्यूटोरियल - तुलना क्रमांक

जर आपण एका क्रमांकाला दुसर्या क्रमांकापेक्षा कमी आहे की तुलना करायची असेल तर आपण ऑपरेटर (<) पेक्षा कमी वापरु शकता. स्ट्रिंग प्रमाणेच आपण स्लॅशसह ऑपरेटरपेक्षा कमी सुटलेला असतो. (\ <).

संख्यांची तुलना करण्याचा एक चांगला मार्ग म्हणजे त्याऐवजी खालील सूचना वापरणे:

उदाहरणार्थ:

जर [$ a -lt $ b]

जर [$ a -le $ b]

जर [$ a -ge $ b]

जर [$ a -gt $ b]

07 चे 08

सुरुवातीस मार्गदर्शिका - तुलना क्रमांक बास

बाश ट्यूटोरियल - तुलना क्रमांक

शेवटी या मार्गदर्शकासाठी, आपण दोन नंबर भिन्न असल्याबाबत चाचणी घेऊ इच्छित असल्यास आपण ऑपरेटर्सपेक्षा (आणि>) यापेक्षा कमी आणि अधिक वापरु शकता.

जर [$ a <> $ b]

जर [$ a -ne $ b]

08 08 चे

सुरुवातीस मार्गदर्शक तत्त्वे - तुलना ऑपरेटर - सारांश

आपण या मार्गदर्शकाच्या पहिल्या तीन भाग गमावल्यास आपण खालील दुव्यावर क्लिक करून त्यांना शोधू शकता:

मार्गदर्शक च्या पुढील भागात मी अंकगणित पांघरूण जाईल.