कसरी एक बाश "लूपको लागि" लेख्नुहोस्

शेल स्क्रिप्टमा पाशको लागि "BASH" कसरी प्रयोग गर्ने

बाश (जो बोरेन दोब्बर शेल को लागि खडा छ) सबै भन्दा लक्सिन र यूनिक्स आधारित ओपरेटिंग सिस्टम द्वारा प्रयोग गरिएको एक लिपिबद्ध भाषा हो।

तपाईं बाश आदेशहरू टर्मिनल सञ्झ्याल भित्र एकपछि अर्को एक चलाउन सक्नुहुनेछ वा शेल लिपि उत्पादन गर्नका लागि पाठ फाईलमा आदेशहरू थप्न सक्नुहुनेछ।

शेल लिपिहरूको बारेमा ठूलो कुरा यो हो कि तपाइँ तिनीहरूलाई फेरि र फेरि चलाउन सक्नुहुन्छ। उदाहरणका लागि कल्पना गर्नुहोस् कि तपाईलाई प्रणालीमा प्रयोगकर्ता थप्न आवश्यक छ, उनीहरूको अनुमतिहरू सेट गर्नुहोस् र उनीहरूको सुरुवात वातावरण व्यवस्थापन गर्न आवश्यक छ। तपाइँ वा त कागजको टुक्रामा आदेशहरू तल लेख्न सक्नुहुन्छ र तिनीहरूलाई नयाँ प्रयोगकर्ताहरू थप्न सक्नुहुन्छ वा तपाइँले एक स्क्रिप्ट लेख्न सक्नुहुन्छ र केवल स्क्रिप्टमा मात्र स्क्रिप्टमा पठाउन सक्नुहुन्छ।

BASH जस्तै स्क्रिप्ट भाषाहरू समान प्रोग्रामिङहरू अन्य भाषाहरूको रूपमा निर्माण गर्छन्। उदाहरणका लागि, तपाईं किबोर्डबाट आगत प्राप्त गर्न र चरको रूपमा भण्डारण गर्न आयात मापदण्डहरू प्रयोग गर्न सक्नुहुन्छ । त्यसपछि तपाइँ लिपि इनपुट इनपुट प्यारामिटरको मानमा आधारित एक निश्चित कार्य गर्न सक्नुहुन्छ।

कुनै पनि प्रोग्रामिंग र लिपि भाषाको एक मुख्य भाग को कोड को एक नै टुक्रा को पुन: चलाउन को लागी क्षमता हो।

त्यहाँ कोड दोहोर्याउनका लागि थुप्रै तरिकाहरू छन् (लूपहरूको रूपमा पनि चिनिन्छ)। यो मार्गदर्शकमा, तपाईं कसरी "लूप" को लागी लेख्न सक्नुहुनेछ।

एक पाशको लागि कोड को एक निश्चित खण्ड लाई माथि र अधिक दोहोरिन्छ। तिनीहरू उपयोगी छन् ताकि आदेशहरूको एक श्रृंखला चलिरहेको बेलामा एक विशेष अवस्था भेट्टाउनसम्म चलिरहेको हुन सक्छ, पछि तिनीहरू रोक्न पछि।

यो मार्गदर्शकमा, तपाईंलाई एक पाश स्क्रिप्ट भित्र पाशको लागि प्रयोग गर्ने पाँच तरिकाहरू देखाइने छ।

सुरु गर्नु अघि

तपाईंले पाश उदाहरणहरूको लागि सुरु गर्नु अघि, तपाइँ टर्मिनल विन्डो खोल्न आवश्यक छ र यी चरणहरू पछ्याउनुहोस्:

  1. Mkdir लिपिहरू प्रविष्ट गर्नुहोस् ( mkdir को बारे थप जान्नुहोस् यहाँ )
  2. सीडीस्क्रिप्टप्रविष्टगर्नुहोस् ( यसलेडाइरेक्टरीस्क्रिप्टमापरिवर्तन गर्दछ )
  3. नैनो examplen.sh प्रविष्टि गर्नुहोस् (जहाँ तपाईं काम गर्दै हुनुहुन्छ उदाहरण हो)
  4. लिपि प्रविष्ट गर्नुहोस्
  5. बचत गर्न CTRL + O थिच्नुहोस् र CTRL + X बाहिर निस्कन
  6. बाश examplen.sh चलाउनुहोस् (फेरि, n के साथ काम गर्दै हुनुहुन्छ उदाहरणको साथ)

एक सूची मार्फत लूप कसरी

#! / बिन / बाश
संख्याको लागि 1 2 3 4 5
गर
$ संख्या गूंज गर्नुहोस्
गरे
बाहिर निस्कनुहोस् 0

बाश "को लागि" loops को उपयोग को केहि हद सम्म फरक छ कि सबै भन्दा अन्य प्रोग्रामिंग र लिपि भाषाहरु लाई "लूप्स" को लागी संभाल को तरीका हो। स्क्रिप्ट तल ब्रेक गरौं ...

एक BASH "लागि" पाशमा, सबै कार्य सूचीबद्ध र सूचीमा प्रत्येक वस्तुको लागि एक पटक प्रदर्शन गरिन्छ

माथिको उदाहरणमा, सूची सबै चीज हो जुन शब्द पछि आउँछ (जस्तै 1 2 3 4 5)।

प्रत्येक पटक पाशले पुनरावर्ती गर्दछ, सूचीमा अर्को मान चर "" को लागि निर्दिष्ट शब्दमा सम्मिलित छ। माथिको पाशमा, चरलाई फोन भनिन्छ।

गूंज बयान प्रयोग गर्न स्क्रीनमा प्रयोग गरिन्छ।

यसैले, यो उदाहरणले संख्या 1 देखि 5 सम्म लिन्छ र तिनीहरूलाई एकले स्क्रिनमा आउट गर्दछ।

एक सुरू र अन्त्य बिन्दु बीच कसरी लूप गर्ने

माथिको उदाहरणको साथ समस्या यो हो कि यदि तपाइँ ठूलो सूचीमा प्रक्रिया गर्न चाहनुहुन्छ (1 देखि 500 ​​सम्म), यो पहिलो नम्बरमा सबै संख्याहरू टाइप गर्न उमेर लाग्न सक्दछ।

यसले हामीलाई दोस्रो उदाहरण ल्याउँछ जसले देखाउने र अन्त्य बिन्दु निर्दिष्ट गर्न कसरी बताउँछ:

#! / बिन / बाश
संख्याको लागि {1..10}
गर
गूंज "$ संख्या"
गरे
बाहिर निस्कनुहोस् 0

नियमहरू मूलतः समान छन्। " ई" "शब्द" " " शब्द " " " " " " " " " " " " " " " " " " " " " " " " " " " " शब्द " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "

मुख्य भिन्नता सूची गठन भएको बाटो हो। घुमाउने कोष्ठक {} मूलतया एक दायराको प्रतिनिधित्व गर्दछ, र दायरा, यस अवस्थामा, 1 देखि 10 हो (दुई बिन्दुहरू दायराको सुरु र अन्त्य अलग हुन्छ)।

यस उदाहरण, यसैले, प्रत्येक नम्बरको माध्यमबाट 1 र 10 बीचको दूरीमा पर्दछ र यसमा स्क्रिनमा नम्बर निर्वाह गर्दछ।

उही लुप यो जस्तो लेखिएको हुन सक्छ, वाक्यको साथ पहिलो उदाहरणको साथ:

संख्याको लागि 1 2 3 4 5 6 7 8 9 10

कसरी दायरामा नम्बरहरू छोड्नुहोस्

अघिल्लो उदाहरणले कसरी सुरू र अन्त्य बिन्दु बीच पाशको लागि देखाउँछ, त्यसैले अब हामी कसरी दायरामा संख्याहरू छोड्न सक्नुहुन्छ।

कल्पना गर्नुहोस् कि तपाईं 0 र 100 बीचको पाश गर्न चाहानुहुन्छ तर केवल सबै दसौं संख्या देखाउनुहोस्। निम्न लिपिले कसरी गर्ने भनेर देखाउँछ:

#! / बिन / बाश
संख्याको लागि {0..100..10}
गर
गूंज "$ संख्या"
गरे
बाहिर निस्कनुहोस् 0

नियमहरू मूलतः समान छन्। त्यहाँ एक सूची हो, एक चर, र कथन को एक सेट गर्छगरे को बीच प्रदर्शन गर्न को लागी। यो सूची यो जस्तो देखिन्छ: {0..100..10}।

पहिलो अंक 0 हो र अन्त्य नम्बर 100 हो। तेस्रो नम्बर (10) सूचीमा वस्तुहरूको संख्या हो जुन यो छोड्छ।

यसैले, माथिको उदाहरण निम्न आउटपुट प्रदर्शित गर्दछ:

लूप को लागि एक अधिक पारंपरिक खोज

अन्य प्रोग्रामिङ भाषाहरूको तुलनामा लूप्सका लागि BASH बाटोको सानो अक्षर अजीब छ।

तथापि, हुन सक्छ, एक प्रोग्रामिंग भाषा को लागि त्यहि शैली मा पाश को लागि एक लेख को लाग्न सक्छ, जस्तै:

#! / बिन / बाश
को लागि ((नम्बर = 1; नम्बर <100; नम्बर ++))
{
यदि (($ संख्या% 5 == 0))
त्यसपछि
गूंज "$ संख्या 5 द्वारा विभाजित छ"
fi
}
बाहिर निस्कनुहोस् 0

लूपले चर नम्बर 1 (संख्या = 1 ) लाई सेटिङ गरेर सुरु गर्दछ। लूप पुनरावृत्त रहनेछ जब नम्बरको मान कम्तिमा 100 ( नम्बर <100 ) हो। संख्याको मान प्रत्येक पुनरावृत्ति पछि (1 + + ) पछि 1 बाट थप गरेर परिवर्तन गर्दछ।

घुमाई ब्रेकसहरू बीच सबै कुरा पाशको प्रत्येक दौडमार्फत गरिन्छ।

ब्रेसेन्स बीच बिस्तार संख्याको मान जाँच गर्छ, यसलाई 5 द्वारा विभाजित गर्दछ, र बाँकी 1 को तुलना गर्दछ। यदि बाँकी छ 0 त्यसपछि विभाजन 5 द्वारा विभाजित छ र त्यसपछि स्क्रीनमा प्रदर्शन गरिन्छ।

उदाहरणका लागि:

यदि तपाइँ पुनरावृत्तिको चरण आकार परिवर्तन गर्न चाहनुहुन्छ भने तपाई संख्या + + + सेक्शनमा संख्या = नम्बर + 2 , नम्बर = नम्बर + 5 , वा नम्बर = नम्बर + 10 आदिमा संशोधन गर्न सक्नुहुनेछ।

यो थप संख्या + = 2 वा अंक + = 5 मा कम गर्न सकिन्छ।

एक व्यावहारिक उदाहरण

लूपहरूको लागि संख्याहरूको पुनरावृत्त सूची भन्दा अधिक गर्न सक्दछ। तपाईं वास्तवमा सूचीको रूपमा अन्य आदेशहरूको आउटपुट प्रयोग गर्न सक्नुहुनेछ।

निम्न उदाहरणले कसरी MP3 बाट WAV सम्म अडियो फाइलहरू रूपान्तरित गर्दछ भनेर देखाउँछ:

#! / बिन / बाश

यस उदाहरणको सूची हरेक फाईल हो .एमपी 3 एक्सटेन्सनमा हालको फोल्डरमा एक्सटेन्सन र चर एक फाईल हो

MPpg कमांडले MP3 फाइललाई WAV मा बदल्छ। यद्यपि, तपाईले यसलाई तपाइँको प्याकेज प्रबन्धकलाई पहिले प्रयोग गरेर स्थापना गर्न आवश्यक छ।