प्रौद्योगिकी के साथ अपने जीवन को आसान बनाने के सर्वोत्तम तरीकों में से एक, चाहे काम पर हो या घर पर, स्वचालन का उपयोग करना है। स्क्रिप्ट और समयबद्ध नौकरियों के साथ कार्यों को स्वचालित करना समय, सिरदर्द और प्रयास बचाने का एक निश्चित तरीका है। हालांकि, यह तुरंत स्पष्ट नहीं है कि कहां से शुरू करें। यहां हम आपको दिखाते हैं कि Bash for लूप कमांड का उपयोग कैसे करें, IT स्वचालन में मूलभूत उपकरणों में से एक, आपको शुरू करने के लिए।
अपना टेस्ट वातावरण सेट करें
पहली चीज जिसकी आपको आवश्यकता होगी वह है Bash का एक कार्यशील उदाहरण। यह लिनक्स, Unix, BSD, और macOS (जब तक आप zsh नहीं चला रहे) में टर्मिनल में डिफॉल्ट शेल है। आप टर्मिनल में निम्न कमांड टाइप करके जांच सकते हैं कि आप कौन सा शेल चला रहे हैं:
echo $SHELL
यह उस शेल को प्रिंट करना चाहिए जिसका आप उपयोग कर रहे हैं। मेरा आउटपुट मुझे बताता है कि मैं /bin/bash का उपयोग कर रहा हूं, जो वास्तव में वही है जो मैं ढूंढ रहा हूं।
आपको एक टेक्स्ट एडिटर की भी आवश्यकता होगी - आप जो भी एडिटर चुनें वह ठीक होना चाहिए। मैं टर्मिनल में Nano का उपयोग कर रहा हूं, लेकिन आप टर्मिनल में Vim या Emacs या Gedit, Kate, या Sublime जैसे GUI में कुछ भी आसानी से उपयोग कर सकते हैं।
अपने टेक्स्ट एडिटर में एक स्क्रिप्ट फाइल बनाएं, या तो touch कमांड का उपयोग करके या बस अपने टेक्स्ट एडिटर का नाम और उस फाइल का नाम टाइप करके जिसे आप बनाना चाहते हैं। मेरे लिए, मैं बस nano for-loop-test.sh टाइप कर सकता हूं, और मैं तैयार हो जाऊंगा।
Bash For Loop: मूल बातें
Bash में For लूप शेल को वस्तुओं की एक निर्दिष्ट रेंज पर पुनरावृति करने और उन वस्तुओं पर एक निर्दिष्ट कमांड निष्पादित करने के लिए कहता है। इसका क्या मतलब है? मुझे लगता है कि यह आपको दिखाना आसान हो सकता है। यह एक बहुत ही बुनियादी For लूप है।
पहली लाइन, for i in 1 2 3 4 5 एक वेरिएबल "i" और 1 से 5 तक की रेंज निर्दिष्ट करती है। यह उतनी ही आसानी से संख्याओं का कुछ अन्य, अधिक जटिल अनुक्रम हो सकता है, या यह वहां इनपुट की गई फाइलों की एक सूची या डायरेक्टरी हो सकती है।
अगला भाग बुनियादी फॉर्मेटिंग है, जिसमें टैब किए गए हिस्से में निष्पादित की जाने वाली कमांड है। do और done For लूप सिंटैक्स का हिस्सा हैं और वहां होना चाहिए। यदि मैं इस स्क्रिप्ट को चलाऊं, तो मुझे इस तरह का आउटपुट मिलेगा:
Test round 1 Test round 2 Test round 3 Test round 4 Test round 5
आप देख सकते हैं कि वह वेरिएबल कैसे आता है। यह आपको उस इनपुट रेंज में प्रत्येक व्यक्तिगत वस्तु की पहचान करने में मदद करता है। थोड़ा अधिक जटिल संख्या रेंज निर्दिष्ट करने के लिए, आप कर्ली ब्रेसिज़ का उपयोग करके उन्हें सेट कर सकते हैं। पहले वाली उसी रेंज को निर्दिष्ट करने के लिए, आप for $i in 1 2 3 4 5 को for $i in {1..5} में बदल सकते हैं। आउटपुट वही होगा। आप इसे कुछ संख्याओं से गिनने के लिए भी बना सकते हैं। यह 0 और 27 के बीच 3 से सभी संख्याओं को गिन रहा है।
स्क्रिप्ट में कुछ अधिक सामान्य है फाइलों के एक समूह पर एक विशेष कमांड निष्पादित करना। यदि मैं एक डायरेक्टरी में फाइलों के एक समूह पर cat का उपयोग करना चाहता था, तो मैं स्क्रिप्ट को निम्न में बदलकर ऐसा कर सकता था।
यह "test-directory" में सभी फाइलों के आउटपुट को टर्मिनल पर प्रिंट करेगा।
आउटपुट मेरे मामले में निम्न जैसा दिखेगा।
आप अंदाजा लगाना शुरू कर सकते हैं कि For लूप कितना शक्तिशाली हो सकता है। यह केवल सतह को खरोंच रहा है, और आप do और done के बीच कई कमांड को एक साथ जोड़ सकते हैं, और कमांड को अधिक जटिल बनाने के लिए कंडीशनल स्टेटमेंट का भी उपयोग कर सकते हैं।
हमारे अन्य Bash लेखों को देखना न भूलें, जैसे टर्मिनल में बेहतर काम करने के लिए Bash टिप्स और ट्रिक्स और कुछ Bash विशेष वर्ण जिन्हें आपको जानना चाहिए।