01 को 08
शुरुआती गाइड गाइड गर्न बाश - तुलना गर्नुहोस्
BASH ट्यूटोरियलको अघिल्लो भागमा हामीले सशर्त बयान देख्यौं।
त्यो गाइड धेरै लामो थियो तर साँच्चै मात्र तर्कको प्रवाह कसरी नियन्त्रण गर्ने। यो मार्गदर्शकले विभिन्न तरिकाहरू देखाउँछ जुन तपाईं चरहरू तुलना गर्न सक्नुहुन्छ।
माथिको चित्रले यस हप्ताको मार्गदर्शकमा पहिलो उदाहरण देखाउँछ:
#! / बिन / बाश
name1 = "gary"
name2 = "bob"यदि ["$ name1" = "$ name2"]
त्यसपछि
गन "नाम मेल"
अन्य
गूंज "नामहरू मेल खाँदैन"
fi
माथिको लिपिमा मैले दुई चरहरू नाम 1 र नाम 2 लाई परिभाषित गरेको छु र तिनीहरूलाई मान "गैरी" र "बॉब" मान्य गरीएको छ। जब चरहरू उद्धरण चिन्हहरू बीच समावेश हुन्छन् तिनीहरू तिनीहरूलाई स्ट्राइक चरहरू भनिन्छ जसमा ट्यूटोरियल जान्छ जस्तै बढी सान्दर्भिक हुन्छ।
सबै लिपिले $ नाम 1 र $ नाम 2 को तुलना गर्दछ र यदि तिनीहरू "string" नाम म्याच आउटपुटसँग मेल खान्छ र यदि तिनीहरू आउटपुट आउटपुट गर्दैन "नामहरू मेल खाँदैन"।
उद्धरण $ नाम 1 र $ नाम 2 चरको वरिपरि चिह्नहरू महत्त्वपूर्ण छन् किनभने यदि तिनीहरूमध्ये कुनै पनि सेट सेट गरिएको छैन भने लिपि अझै पनि काम गर्नेछ।
उदाहरणको लागि यदि $ 1 नाम कहिल्यै सेट गरिएको थिएन, तब तपाईं "बब" सँग तुलना गर्नुहुनेछ। उद्धरण चिह्नहरू बिना तपाईं = "बॉब" सँग छोड्नेछ जुन स्पष्ट रूपमा असफल हुन्छ।
तपाईं पनि प्रयोग गर्न सक्नुहुन्छ = = नोटेशन लाई निम्नको बराबर नपढाउनको लागि:
यदि ["$ नाम 1"! = "$ name2"]
02 को 08
शुरुआती गाइड गाइडको लागि ब्याश - तुलना गर्दछन्
माथिको उदाहरणमा परीक्षण एउटै दुई तारको तुलना गर्दछ र प्रश्न सोध्छ कि गैरी वर्णमा बोब भन्दा पहिले आउँछ?
स्पष्ट रूपमा जवाफ होइन।
लिपिले अपरेटर (<) भन्दा कम परिचय दिन्छ। जस्तै कि ओपरेटर तपाईलाई "$ name1" \ "" $ name2 "को तुलनामा माथि स्क्रिप्टमा कम से कम यसको लागि स्ल्याश (\) सँग बचाउन यो पुन: प्राप्तिका लागि प्रयोग गरिएको छ।
भन्दा कम को विपरीत स्पष्ट देखि अधिक छ। प्रयोग गर्नुको सट्टा \
उदाहरणका लागि
यदि ["$ name1" \> "$ name2"]
03 को 08
शुरुआती गाइड गाइडको लागि ब्याश - तुलना गर्दछन्
यदि तपाइँ परीक्षण गर्न चाहानुहुन्छ कि एक चर मान हो कि तपाइँ निम्न परीक्षण प्रयोग गर्न सक्नुहुन्छ कि:
यदि [-नाम $ 2]
माथिको लिपिमा मैले परीक्षण गरेको छु कि $ name2 लाई मान दिइएको छ र यदि यो सन्देश "कुनै पनि बॉब छैन, त्यहाँ त्यहाँ कुनै बेला देखा पर्दैन"।
04 को 08
शुरुआती गाइड गाइडको लागि ब्याश - तुलना गर्दछन्
अघिल्लो स्लाइडमा हामीले एक ढाँचा सेट गरिएको छ वा छैन कि छैन भनेर ढाकेको छ। कहिलेकाहीँ एक चर हुन सक्छ सेट हुन सक्छ तर यो वास्तविक रूपमा मान छैन।
उदाहरण को रुपमा:
name1 = ""
परीक्षण गर्नको लागि कि एक चरको मान हो वा होइन (जस्तै शून्यको लम्बाई) प्रयोग --z निम्नानुसार:
यदि [-z $ नाम 1]
माथिको स्क्रिप्टमा मैले $ 1 नाम शून्य लम्बाइ स्ट्रिङमा सेट गरेको छु र त्यसपछि यसको तुलनामा -z। यदि सन्देश "लरी साँझको लागि बाहिर गएको छ" लम्बाईमा $ 1 शून्य छ भने प्रदर्शन गरिनेछ।
05 को 08
शुरुआती गाइड गाइड गर्नका लागि बाश - तुलना गर्नुहोस्
यस प्रकारसम्म सबै तुलनाहरू तारको लागि गरिएको छ। संख्याहरू तुलना गर्न के हो?
उपरोक्त लिपिले दुईवटा संख्या तुलना गर्ने उदाहरण देखाउँछ:
#! / बिन / बाश
a = 4
b = 5यदि [$ a = $ b]
त्यसपछि
गूंज "4 = 5"
अन्य
गूंज "4 बराबर 5 छैन"
fi
एक नम्बर हुनको लागि चर सेट गर्न को लागी मात्र यो उद्धरण चिन्हहरू बिना सेट गर्नुहोस्। त्यसपछि तपाइँ अंकहरू बराबर बराबरको तुलना गर्न सक्नुहुन्छ।
मैले दुईवटा संख्या तुलना गर्न निम्न अपरेटरको प्रयोग गर्न चाहानुहुन्छ:
यदि [$ a -eq $ b]
06 को 08
शुरुआती गाइड गाइड गर्नका लागि बाश - तुलना गर्नुहोस्
यदि तपाइँ तुलना गर्न चाहानुहुन्छ कि नम्बर अर्को नम्बर भन्दा कम छ भने तपाईले ओपरेटर (<) भन्दा कम प्रयोग गर्न सक्नुहुनेछ। स्ट्रिंगको रूपमा तपाईले स्लाशसँग कम सेपरेटरबाट बच्न पर्छ। (\ <)।
संख्या तुलना गर्न को एक राम्रो तरिका यसको बजाय निम्न सूचना को उपयोग गर्न को लागी छ:
- कम भन्दा कम
- -कम भन्दा कम वा बराबर
- भन्दा ठूलो
- भन्दा धेरै वा बराबरको -जस्तो
उदाहरणका लागि:
यदि [$ a -lt $ b]
यदि [$ a -le $ b]
यदि [$ a -ge $ b]
यदि [$ a -gt $ b]
07 को 08
शुरुआती गाइड गाइड गर्नका लागि बाश - तुलना गर्नुहोस्
अन्तमा यो मार्गदर्शकको लागि, यदि तपाइँ परीक्षण गर्न चाहानुहुन्छ कि दुई अंक फरक छ भने तपाईले कम्तिमा भन्दा कम र ओपरेटरहरू सँग एकै साथ प्रयोग गर्न सक्नुहुनेछ (<>) वा -न निम्नानुसार रूपमा:
यदि [$ a <> $ b]
यदि [$ a -ne $ b]
08 को 08
शुरुआती गाइड गाइडको लागि ब्याश - तुलना संचालकहरू - सारांश
यदि तपाइँले छुटेको छ भने यो मार्गदर्शकको पहिलो तीन भागहरू तपाईँले निम्न लिङ्कहरूमा क्लिक गरी तिनीहरूलाई भेट्टाउन सक्नुहुन्छ:
यस गाइडको अर्को भागमा अंकगणना लिनेछ।