शुरुआत करने वालों की मार्गदर्शिका शैल स्क्रिप्टिंग: मूल बातें

विषयसूची:

शुरुआत करने वालों की मार्गदर्शिका शैल स्क्रिप्टिंग: मूल बातें
शुरुआत करने वालों की मार्गदर्शिका शैल स्क्रिप्टिंग: मूल बातें
Anonim
"शेल स्क्रिप्टिंग" शब्द का उल्लेख अक्सर लिनक्स मंचों में किया जाता है, लेकिन कई उपयोगकर्ता इससे परिचित नहीं हैं। इस आसान और शक्तिशाली प्रोग्रामिंग विधि को सीखने से आप समय बचाने में मदद कर सकते हैं, कमांड लाइन को बेहतर सीख सकते हैं, और थकाऊ फ़ाइल प्रबंधन कार्यों को खत्म कर सकते हैं।
"शेल स्क्रिप्टिंग" शब्द का उल्लेख अक्सर लिनक्स मंचों में किया जाता है, लेकिन कई उपयोगकर्ता इससे परिचित नहीं हैं। इस आसान और शक्तिशाली प्रोग्रामिंग विधि को सीखने से आप समय बचाने में मदद कर सकते हैं, कमांड लाइन को बेहतर सीख सकते हैं, और थकाऊ फ़ाइल प्रबंधन कार्यों को खत्म कर सकते हैं।

शैल स्क्रिप्टिंग क्या है?

लिनक्स उपयोगकर्ता होने का मतलब है कि आप कमांड लाइन के साथ खेलते हैं। इसकी तरह या नहीं, कुछ ऐसी चीजें हैं जो इस इंटरफ़ेस के माध्यम से इंगित करके और क्लिक करके अधिक आसानी से की जाती हैं। जितना अधिक आप कमांड लाइन का उपयोग करते हैं और सीखते हैं, उतना अधिक आप इसकी क्षमता देखते हैं। खैर, कमांड लाइन स्वयं एक कार्यक्रम है: खोल। अधिकांश लिनक्स डिस्ट्रोज़ आज बैश का उपयोग करते हैं, और यही वह है जो आप वास्तव में कमांड में प्रवेश कर रहे हैं।

अब, आप में से कुछ जो लिनक्स का उपयोग करने से पहले विंडोज का इस्तेमाल करते हैं, बैच फाइलों को याद कर सकते हैं। ये छोटी टेक्स्ट फाइलें थीं जिन्हें आप निष्पादित करने के लिए कमांड के साथ भर सकते थे और विंडोज़ उन्हें बदले में चलाएगा। कुछ चीजें करने के लिए यह एक चालाक और साफ तरीका था, जैसे कि आप अपने हाईस्कूल कंप्यूटर प्रयोगशाला में रन गेम्स जैसे सिस्टम फ़ोल्डर्स नहीं खोल सकते या शॉर्टकट नहीं बना सकते थे। विंडोज़ में बैच फ़ाइलें, उपयोगी होने पर, खोल स्क्रिप्ट की सस्ती नकल होती हैं।

शैल स्क्रिप्ट हमें श्रृंखलाओं में प्रोग्राम कमांड करने की अनुमति देती है और सिस्टम को बैच फ़ाइलों की तरह एक स्क्रिप्ट किए गए ईवेंट के रूप में निष्पादित करता है। वे कमांड प्रतिस्थापन जैसे कहीं अधिक उपयोगी कार्यों की भी अनुमति देते हैं। आप एक आदेश, जैसे तिथि का आह्वान कर सकते हैं, और फ़ाइल-नामकरण योजना के हिस्से के रूप में इसका आउटपुट उपयोग कर सकते हैं। आप बैकअप स्वचालित कर सकते हैं और प्रत्येक प्रतिलिपि फ़ाइल में वर्तमान नाम को उसके नाम के अंत में जोड़ा जा सकता है। स्क्रिप्ट्स केवल आदेशों के आविष्कार नहीं हैं, या तो। वे अपने ही अधिकार में कार्यक्रम हैं। स्क्रिप्टिंग आपको प्रोग्रामिंग फ़ंक्शंस का उपयोग करने की अनुमति देती है - जैसे कि 'for' loops, if / then / else statement, और आगे - सीधे आपके ऑपरेटिंग सिस्टम के इंटरफ़ेस में। और, आपको एक और भाषा सीखनी नहीं है क्योंकि आप जो भी पहले से जानते हैं उसका उपयोग कर रहे हैं: कमांड लाइन।
शैल स्क्रिप्ट हमें श्रृंखलाओं में प्रोग्राम कमांड करने की अनुमति देती है और सिस्टम को बैच फ़ाइलों की तरह एक स्क्रिप्ट किए गए ईवेंट के रूप में निष्पादित करता है। वे कमांड प्रतिस्थापन जैसे कहीं अधिक उपयोगी कार्यों की भी अनुमति देते हैं। आप एक आदेश, जैसे तिथि का आह्वान कर सकते हैं, और फ़ाइल-नामकरण योजना के हिस्से के रूप में इसका आउटपुट उपयोग कर सकते हैं। आप बैकअप स्वचालित कर सकते हैं और प्रत्येक प्रतिलिपि फ़ाइल में वर्तमान नाम को उसके नाम के अंत में जोड़ा जा सकता है। स्क्रिप्ट्स केवल आदेशों के आविष्कार नहीं हैं, या तो। वे अपने ही अधिकार में कार्यक्रम हैं। स्क्रिप्टिंग आपको प्रोग्रामिंग फ़ंक्शंस का उपयोग करने की अनुमति देती है - जैसे कि 'for' loops, if / then / else statement, और आगे - सीधे आपके ऑपरेटिंग सिस्टम के इंटरफ़ेस में। और, आपको एक और भाषा सीखनी नहीं है क्योंकि आप जो भी पहले से जानते हैं उसका उपयोग कर रहे हैं: कमांड लाइन।

यह वास्तव में पटकथा की शक्ति है, मुझे लगता है। अधिकांश प्रमुख प्रोग्रामिंग भाषाओं के स्टेपल सीखते समय, आप पहले से ही कमांड के साथ प्रोग्राम प्राप्त करते हैं। कुछ दोहराव और थकाऊ करने की आवश्यकता है? इसे स्क्रिप्ट करें! वास्तव में एक संकलित कमांड के लिए शॉर्टकट की आवश्यकता है? इसे स्क्रिप्ट करें! कुछ के लिए कमांड लाइन इंटरफ़ेस का उपयोग करना वास्तव में आसान बनाना चाहते हैं? इसे स्क्रिप्ट करें!

शुरू करने से पहले

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

स्क्रिप्टिंग आसानी से "व्यवस्थापक" या "सुपरसियर" विशेषाधिकारों का उपयोग कर सकती है, इसलिए उन्हें काम करने से पहले स्क्रिप्ट का परीक्षण करना सबसे अच्छा है। सामान्य ज्ञान का भी उपयोग करें, यह सुनिश्चित करने के लिए कि आपके पास उन फ़ाइलों का बैकअप है जिन पर आप एक स्क्रिप्ट चलाने के बारे में हैं। सही विकल्प का उपयोग करना भी वास्तव में महत्वपूर्ण है, जैसे- rm कमांड के लिए, ताकि आपकी बातचीत आवश्यक हो। यह कुछ ग़लत गलतियों को रोक सकता है। इस प्रकार, आपके द्वारा डाउनलोड की जाने वाली स्क्रिप्ट के माध्यम से पढ़ें और आपके पास डेटा के साथ सावधान रहें, बस चीजें गलत होने पर।

उनके मूल पर, स्क्रिप्ट केवल सादा पाठ फ़ाइलें हैं। आप उन्हें लिखने के लिए किसी भी टेक्स्ट एडिटर का उपयोग कर सकते हैं: जीएडिट, एमएक्स, वीम, नैनो … यह सूची जारी है। बस इसे सादा पाठ के रूप में सहेजना सुनिश्चित करें, समृद्ध टेक्स्ट या वर्ड दस्तावेज़ के रूप में नहीं। चूंकि मुझे नैनो प्रदान करने की आसानी से प्यार है, इसलिए मैं इसका उपयोग करूँगा।

स्क्रिप्ट अनुमतियां और नाम

स्क्रिप्ट को प्रोग्राम की तरह निष्पादित किया जाता है, और इसके होने के लिए उन्हें उचित अनुमतियां रखने की आवश्यकता होती है। आप स्क्रिप्ट को निम्न आदेश चलाकर निष्पादन योग्य बना सकते हैं:

chmod +x ~/somecrazyfolder/script1

यह किसी को भी उस विशेष स्क्रिप्ट को चलाने की अनुमति देगा। यदि आप अपने उपयोगकर्ता को अपने उपयोग को प्रतिबंधित करना चाहते हैं, तो आप इसके बजाय इसका उपयोग कर सकते हैं:

chmod u+x ~/somecrazyfolder/script1

इस स्क्रिप्ट को चलाने के लिए, आपको उचित निर्देशिका में सीडी करना होगा और फिर इस तरह की स्क्रिप्ट चलाएं:

cd ~/somecrazyfolder

./script1

चीजों को और अधिक सुविधाजनक बनाने के लिए, आप अपनी होम निर्देशिका में "बिन" फ़ोल्डर में स्क्रिप्ट डाल सकते हैं:

~/bin

कई आधुनिक distros में, यह फ़ोल्डर डिफ़ॉल्ट रूप से नहीं बनाया गया है, लेकिन आप इसे बना सकते हैं। आमतौर पर यह निष्पादन योग्य फ़ाइलें संग्रहीत होती हैं जो आपके उपयोगकर्ता से संबंधित होती हैं, न कि अन्य उपयोगकर्ताओं के लिए। स्क्रिप्ट्स को यहां रखकर, आप उन्हें सीडी के आसपास होने और './' उपसर्ग का उपयोग करने के बजाय, अन्य आदेशों की तरह ही अपना नाम टाइप करके चला सकते हैं।

एक स्क्रिप्ट का नाम देने से पहले, आपको यह जांचने के लिए निम्न आदेश होना चाहिए कि क्या आपके पास कोई प्रोग्राम इंस्टॉल है जो उस नाम का उपयोग करता है:

which [command]

बहुत से लोग अपनी प्रारंभिक स्क्रिप्ट "टेस्ट" नाम देते हैं, और जब वे कमांड लाइन में इसे चलाने का प्रयास करते हैं, तो कुछ भी नहीं होता है। ऐसा इसलिए है क्योंकि यह परीक्षण कमांड के साथ संघर्ष करता है, जो बिना तर्क के कुछ भी करता है। हमेशा सुनिश्चित करें कि आपके स्क्रिप्ट नाम कमांड के साथ संघर्ष नहीं करते हैं, अन्यथा आप स्वयं को ऐसी चीजें कर सकते हैं जो आप करने का इरादा नहीं रखते हैं!

स्क्रिप्टिंग दिशानिर्देश

जैसा कि मैंने पहले उल्लेख किया था, प्रत्येक स्क्रिप्ट फ़ाइल अनिवार्य रूप से सादा पाठ है।इसका मतलब यह नहीं है कि आप जो कुछ भी चाहते हैं उसे लिख सकते हैं, हालांकि। जब एक टेक्स्ट फ़ाइल को निष्पादित करने का प्रयास किया जाता है, तो गोले सुराग के लिए उनके माध्यम से विश्लेषण करेंगे कि वे स्क्रिप्ट हैं या नहीं, और सब कुछ ठीक से कैसे संभालें। इसके कारण, आपको कुछ दिशानिर्देश जानने की आवश्यकता है।
जैसा कि मैंने पहले उल्लेख किया था, प्रत्येक स्क्रिप्ट फ़ाइल अनिवार्य रूप से सादा पाठ है।इसका मतलब यह नहीं है कि आप जो कुछ भी चाहते हैं उसे लिख सकते हैं, हालांकि। जब एक टेक्स्ट फ़ाइल को निष्पादित करने का प्रयास किया जाता है, तो गोले सुराग के लिए उनके माध्यम से विश्लेषण करेंगे कि वे स्क्रिप्ट हैं या नहीं, और सब कुछ ठीक से कैसे संभालें। इसके कारण, आपको कुछ दिशानिर्देश जानने की आवश्यकता है।
  1. प्रत्येक स्क्रिप्ट "#! / बिन / बैश" के साथ होना चाहिए
  2. हर नई लाइन एक नया आदेश है
  3. टिप्पणी लाइनें #
  4. आदेश से घिरे हैं ()

हैश-बैंग हैक

जब एक शेल एक पाठ फ़ाइल के माध्यम से पारदर्शी होता है, तो फ़ाइल को पहचानने का सबसे सीधा तरीका आपकी पहली पंक्ति बनाकर होता है:

#!/bin/bash

यदि आप एक और खोल का उपयोग करते हैं, तो यहां अपना रास्ता बदलें। टिप्पणी लाइनें हैंश (#) से शुरू होती हैं, लेकिन बैंग (!) और शैल पथ जोड़कर यह एक प्रकार का हैक है जो इस टिप्पणी नियम को बाईपास करेगा और स्क्रिप्ट को उस पंक्ति के साथ निष्पादित करने के लिए मजबूर करेगा जो इस पंक्ति को इंगित करता है।

नई रेखा = नया कमान

प्रत्येक नई लाइन को एक नया आदेश, या एक बड़ी प्रणाली का एक घटक माना जाना चाहिए। यदि / / / अन्य विवरण, उदाहरण के लिए, कई पंक्तियों को ले लेंगे, लेकिन उस प्रणाली का प्रत्येक घटक एक नई पंक्ति में है। अगली पंक्ति में एक कमांड को खून बहने दें, क्योंकि यह पिछले कमांड को छोटा कर सकता है और आपको अगली पंक्ति में एक त्रुटि दे सकता है। यदि आपका टेक्स्ट एडिटर ऐसा कर रहा है, तो आपको सुरक्षित पक्ष पर टेक्स्ट-रैपिंग बंद करनी चाहिए। आप एएलटी + एल को मारने वाले नैनो बिट में टेक्स्ट रैपिंग बंद कर सकते हैं।

अक्सर # एस के साथ टिप्पणी

यदि आप # के साथ एक लाइन शुरू करते हैं, तो रेखा को नजरअंदाज कर दिया जाता है। यह इसे एक टिप्पणी पंक्ति में बदल देता है, जहां आप खुद को याद दिला सकते हैं कि पिछले आदेश का आउटपुट क्या था, या अगला आदेश क्या करेगा। दोबारा, पाठ रैपिंग बंद करें, या आपको कई पंक्तियों में टिप्पणी करें जो सभी हैश से शुरू होते हैं। बहुत सारी टिप्पणियों का उपयोग करना एक अच्छा अभ्यास है, क्योंकि यह आपको और अन्य लोगों को आपकी स्क्रिप्ट को अधिक आसानी से ट्विक करने देता है। एकमात्र अपवाद उपरोक्त हैश-बैंग हैक है, इसलिए # एस का पालन न करें।;-)

आदेश माता-पिता से घिरे हुए हैं

पुराने दिनों में, कमांड प्रतिस्थापन एकल टिक अंकों के साथ किए गए थे (`, ~ कुंजी साझा करते हैं)। हम अभी तक इस पर छूने वाले नहीं हैं, लेकिन अधिकांश लोग मूल बातें सीखने के बाद बाहर निकलते हैं और खोजते हैं, शायद यह उल्लेख करना एक अच्छा विचार है कि आपको इसके बजाय कोष्ठक का उपयोग करना चाहिए। यह मुख्य रूप से इसलिए है क्योंकि जब आप घोंसला करते हैं - कमांड को अन्य कमांड के अंदर रखें - कोष्ठक बेहतर काम करते हैं।

आपकी पहली स्क्रिप्ट

आइए एक साधारण स्क्रिप्ट से शुरू करें जो आपको फ़ाइलों की प्रतिलिपि बनाने और फ़ाइल नाम के अंत तक तिथियां जोड़ने की अनुमति देता है। आइए इसे "डेटसीपी" कहते हैं। सबसे पहले, यह देखने के लिए जांचें कि क्या नाम कुछ के साथ संघर्ष करता है:

आप देख सकते हैं कि किस कमांड का कोई आउटपुट नहीं है, इसलिए हम इस नाम का उपयोग करने के लिए तैयार हैं।
आप देख सकते हैं कि किस कमांड का कोई आउटपुट नहीं है, इसलिए हम इस नाम का उपयोग करने के लिए तैयार हैं।

आइए ~ / bin फ़ोल्डर में एक खाली फ़ाइल बनाएं:

touch ~/bin/datecp

और, भूलने से पहले, अब अनुमति को बदल दें:
और, भूलने से पहले, अब अनुमति को बदल दें:
आइए फिर हमारी स्क्रिप्ट बनाना शुरू करें। उस फ़ाइल को अपनी पसंद के टेक्स्ट एडिटर में खोलें। जैसे मैंने कहा, मुझे नैनो की सादगी पसंद है।
आइए फिर हमारी स्क्रिप्ट बनाना शुरू करें। उस फ़ाइल को अपनी पसंद के टेक्स्ट एडिटर में खोलें। जैसे मैंने कहा, मुझे नैनो की सादगी पसंद है।

nano ~/bin/datecp

और, आगे बढ़ें और पहले की पंक्ति में डालें, और इस स्क्रिप्ट के बारे में एक टिप्पणी दें।

इसके बाद, चलिए एक चर घोषित करते हैं। यदि आपने कभी बीजगणित लिया है, तो आप शायद जानते हैं कि वह क्या है। एक चर हमें जानकारी स्टोर करने और इसके साथ चीजों को करने की अनुमति देता है। जब कहीं और संदर्भित किया जाता है तो वैरिएबल "विस्तार" कर सकते हैं। यही है, उनके नाम को प्रदर्शित करने के बजाय, वे अपनी संग्रहीत सामग्री प्रदर्शित करेंगे। बाद में आप अलग-अलग जानकारी को स्टोर करने के लिए उसी वैरिएबल को बता सकते हैं, और उसके बाद होने वाले किसी भी निर्देश से नई जानकारी का उपयोग किया जाएगा। यह वास्तव में एक फैंसी प्लेसहोल्डर है।
इसके बाद, चलिए एक चर घोषित करते हैं। यदि आपने कभी बीजगणित लिया है, तो आप शायद जानते हैं कि वह क्या है। एक चर हमें जानकारी स्टोर करने और इसके साथ चीजों को करने की अनुमति देता है। जब कहीं और संदर्भित किया जाता है तो वैरिएबल "विस्तार" कर सकते हैं। यही है, उनके नाम को प्रदर्शित करने के बजाय, वे अपनी संग्रहीत सामग्री प्रदर्शित करेंगे। बाद में आप अलग-अलग जानकारी को स्टोर करने के लिए उसी वैरिएबल को बता सकते हैं, और उसके बाद होने वाले किसी भी निर्देश से नई जानकारी का उपयोग किया जाएगा। यह वास्तव में एक फैंसी प्लेसहोल्डर है।

हम चर परिवर्तनीय में क्या डाल देंगे? खैर, चलो तारीख और समय स्टोर करते हैं! ऐसा करने के लिए, हम डेट कमांड पर कॉल करेंगे।

डेट कमांड के आउटपुट को बनाने के तरीके के लिए नीचे स्क्रीनशॉट पर एक नज़र डालें:

आइए दिनांक कमांड के अंतिम पुनरावृत्ति का उपयोग करें, "दिनांक +% m_% d_% y-% एच%%% S", और हमारी स्क्रिप्ट में इसका उपयोग करें।

अगर हम अभी इस स्क्रिप्ट को सहेजना चाहते हैं, तो हम इसे चला सकते हैं और यह हमें डेट कमांड का आउटपुट देगा जैसा कि हम उम्मीद करेंगे:
अगर हम अभी इस स्क्रिप्ट को सहेजना चाहते हैं, तो हम इसे चला सकते हैं और यह हमें डेट कमांड का आउटपुट देगा जैसा कि हम उम्मीद करेंगे:
लेकिन, चलो कुछ अलग करते हैं। आइए एक वैरिएबल नाम दें, जैसे इस कमांड पर date formatted। इसके लिए उचित वाक्यविन्यास निम्नानुसार है:
लेकिन, चलो कुछ अलग करते हैं। आइए एक वैरिएबल नाम दें, जैसे इस कमांड पर date formatted। इसके लिए उचित वाक्यविन्यास निम्नानुसार है:

variable=$(command –options arguments)

और हमारे लिए, हम इसे इस तरह बना देंगे:

date_formatted=$(date +%m_%d_%y-%H.%M.%S)

यही वह है जिसे हम कमांड प्रतिस्थापन कहते हैं। हम अनिवार्य रूप से बैश को बता रहे हैं कि जब भी "date formatted" वैरिएबल को ब्रांड्स के अंदर कमांड चलाने के लिए दिखाया जाता है। फिर, जो भी आउटपुट कमांड देता है उसे वैरिएबल के नाम के बजाय प्रदर्शित किया जाना चाहिए, "date formatted"।
यही वह है जिसे हम कमांड प्रतिस्थापन कहते हैं। हम अनिवार्य रूप से बैश को बता रहे हैं कि जब भी "date formatted" वैरिएबल को ब्रांड्स के अंदर कमांड चलाने के लिए दिखाया जाता है। फिर, जो भी आउटपुट कमांड देता है उसे वैरिएबल के नाम के बजाय प्रदर्शित किया जाना चाहिए, "date formatted"।

यहां एक उदाहरण स्क्रिप्ट और इसका आउटपुट है:

Image
Image
ध्यान दें कि आउटपुट में दो रिक्त स्थान हैं। इको कमांड के उद्धरण के भीतर की जगह और चर के सामने की जगह दोनों प्रदर्शित होती हैं। यदि आप उन्हें दिखाना नहीं चाहते हैं तो रिक्त स्थान का उपयोग न करें। यह भी ध्यान रखें कि इस "गूंज" रेखा के बिना, स्क्रिप्ट पूरी तरह से आउटपुट नहीं देगी।
ध्यान दें कि आउटपुट में दो रिक्त स्थान हैं। इको कमांड के उद्धरण के भीतर की जगह और चर के सामने की जगह दोनों प्रदर्शित होती हैं। यदि आप उन्हें दिखाना नहीं चाहते हैं तो रिक्त स्थान का उपयोग न करें। यह भी ध्यान रखें कि इस "गूंज" रेखा के बिना, स्क्रिप्ट पूरी तरह से आउटपुट नहीं देगी।

आइए हमारी स्क्रिप्ट पर वापस आएं। आइए अगली कमान के प्रतिलिपि भाग में जोड़ें।

cp –iv $1 $2.$date_formatted

यह -i और -v विकल्पों के साथ कॉपी कमांड का आह्वान करेगा। पूर्व फ़ाइल को ओवरराइट करने से पहले आपको सत्यापन के लिए पूछेगा, और बाद वाला कमांड लाइन पर क्या दिखा रहा है प्रदर्शित करेगा।
यह -i और -v विकल्पों के साथ कॉपी कमांड का आह्वान करेगा। पूर्व फ़ाइल को ओवरराइट करने से पहले आपको सत्यापन के लिए पूछेगा, और बाद वाला कमांड लाइन पर क्या दिखा रहा है प्रदर्शित करेगा।

अगला, आप देख सकते हैं कि मैंने "$ 1" विकल्प जोड़ा है।स्क्रिप्टिंग करते समय, एक डॉलर के बाद एक डॉलर का चिह्न ($) उस स्क्रिप्ट के उस क्रमांकित तर्क को इंगित करेगा जब इसे बुलाया गया था। उदाहरण के लिए, निम्न आदेश में:

cp –iv Trogdor2.mp3 ringtone.mp3

पहला तर्क है, ÄúTrogdor2.mp3,Äù और दूसरा तर्क है, Äúringtone.mp3,Äù।

हमारी लिपि पर वापस देखकर, हम देख सकते हैं कि हम दो तर्कों का संदर्भ दे रहे हैं:

इसका अर्थ यह है कि जब हम स्क्रिप्ट चलाते हैं, तो हमें स्क्रिप्ट के लिए सही ढंग से चलाने के लिए दो तर्क प्रदान करने होंगे। पहला तर्क, $ 1, वह फ़ाइल है जिसे प्रतिलिपि बनाई जाएगी, और इसे पहले तर्क के रूप में प्रतिस्थापित किया गया है, Äìc,Äù आदेश।
इसका अर्थ यह है कि जब हम स्क्रिप्ट चलाते हैं, तो हमें स्क्रिप्ट के लिए सही ढंग से चलाने के लिए दो तर्क प्रदान करने होंगे। पहला तर्क, $ 1, वह फ़ाइल है जिसे प्रतिलिपि बनाई जाएगी, और इसे पहले तर्क के रूप में प्रतिस्थापित किया गया है, Äìc,Äù आदेश।

दूसरा तर्क, $ 2, एक ही कमांड के लिए आउटपुट फ़ाइल के रूप में कार्य करेगा। लेकिन, आप यह भी देख सकते हैं कि यह अलग है। हमने एक अवधि जोड़ा है और हमने उपरोक्त से Äúdate_formatted,Äù चर संदर्भित किया है। इस बारे में उत्सुक है कि यह क्या करता है?

स्क्रिप्ट चलाए जाने पर क्या होता है:

आप देख सकते हैं कि आउटपुट फ़ाइल को जो भी मैंने $ 2 के लिए दर्ज किया है, उसके बाद अवधि के बाद, डेट कमांड का आउटपुट सूचीबद्ध है! समझ में आता है, है ना?
आप देख सकते हैं कि आउटपुट फ़ाइल को जो भी मैंने $ 2 के लिए दर्ज किया है, उसके बाद अवधि के बाद, डेट कमांड का आउटपुट सूचीबद्ध है! समझ में आता है, है ना?

अब जब मैं datecp कमांड चलाता हूं, तो यह इस स्क्रिप्ट को चलाएगा और मुझे किसी भी फ़ाइल को किसी नए स्थान पर कॉपी करने की अनुमति देगा, और फ़ाइल नाम के अंत में स्वचालित रूप से दिनांक और समय जोड़ देगा। सामान संग्रह करने के लिए उपयोगी!

शेल स्क्रिप्टिंग आपके ओएस को आपके लिए काम करने के दिल में है। ऐसा करने के लिए आपको एक नई प्रोग्रामिंग भाषा सीखनी पड़ेगी, या तो। घर पर कुछ बुनियादी आदेशों के साथ स्क्रिप्टिंग का प्रयास करें और इस बारे में सोचना शुरू करें कि आप इसका क्या उपयोग कर सकते हैं।

क्या आप स्क्रिप्ट करते हैं? नए लोगों के लिए कोई सलाह है? टिप्पणियों में अपने विचारों का साझा करें! इस श्रृंखला में आने के लिए और भी कुछ है!

सिफारिश की: