Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> बाश प्रोग्रामिंग

बैश प्रोग्रामिंग के साथ शुरुआत करें

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

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

प्रोग्रामिंग कैसे सीखें

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

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

इंटरैक्टिव डिज़ाइन

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

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

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

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

कमांड को चलाने के लिए एक मूल स्क्रिप्ट तैयार करना केवल एक पीडीएफ से छवियों को हटाने और उन्हें एक टेक्स्ट फ़ाइल में पेस्ट करने के लिए उपयोग किए जाने वाले कमांड और विकल्पों की प्रतिलिपि बनाने का मामला था। फ़ाइल को स्क्रिप्ट के रूप में चलाने से, संभवतः, समान परिणाम प्राप्त होंगे।

बैश स्क्रिप्ट में तर्क पास करना

टर्मिनल में कमांड चलाने और शेल स्क्रिप्ट में कमांड चलाने के बीच का अंतर यह है कि पूर्व इंटरैक्टिव है। एक टर्मिनल में, आप जाते ही चीजों को समायोजित कर सकते हैं। उदाहरण के लिए, यदि मैंने अभी example_1.pdf processed को संसाधित किया है और मैं अगले दस्तावेज़ को संसाधित करने के लिए तैयार हूं, मेरे आदेश को अनुकूलित करने के लिए, मुझे केवल फ़ाइल नाम बदलने की आवश्यकता है।

हालांकि, एक शेल स्क्रिप्ट इंटरैक्टिव नहीं है। वास्तव में, शेल स्क्रिप्ट . का एकमात्र कारण है मौजूद है, इसलिए आपको इसमें शामिल होने की आवश्यकता नहीं है। यही कारण है कि कमांड (और उन्हें चलाने वाली शेल स्क्रिप्ट) तर्कों को स्वीकार करते हैं।

शेल स्क्रिप्ट में, कुछ पूर्वनिर्धारित चर होते हैं जो दर्शाते हैं कि स्क्रिप्ट कैसे शुरू होती है। प्रारंभिक चर $0 . है , और यह स्क्रिप्ट शुरू करने के लिए जारी किए गए आदेश का प्रतिनिधित्व करता है। अगला चर $1 . है , जो शेल स्क्रिप्ट को दिए गए पहले "तर्क" का प्रतिनिधित्व करता है। उदाहरण के लिए, echo hello . कमांड में , कमांड गूंज $0, . है और शब्द नमस्ते $1 . है . कमांड में हैलो वर्ल्ड इको करें , कमांड गूंज $0 . है , नमस्कार $1 . है , और दुनिया $2 . है ।

एक इंटरैक्टिव शेल में:

$ echo hello world
hello world

एक गैर-संवादात्मक शेल स्क्रिप्ट में, आप कर सकते थे एक ही काम को बहुत ही शाब्दिक तरीके से करें। इस टेक्स्ट को टेक्स्ट फ़ाइल में टाइप करें और इसे hello.sh . के रूप में सहेजें :

echo hello world

अब स्क्रिप्ट चलाएँ:

$ bash hello.sh
hello world

यह काम करता है, लेकिन यह इस तथ्य का लाभ नहीं उठाता है कि एक स्क्रिप्ट इनपुट ले सकती है। बदलें hello.sh इसके लिए:

echo $1

स्क्रिप्ट को दो तर्कों के साथ चलाएँ जिन्हें एक साथ उद्धरण चिह्नों के साथ समूहीकृत किया गया है:

$ bash hello.sh "hello bash"
hello bash

मेरी पीडीएफ कमी परियोजना के लिए, मुझे इस तरह की गैर-अंतःक्रियाशीलता की वास्तविक आवश्यकता थी, क्योंकि प्रत्येक पीडीएफ को संघनित होने में कई मिनट लगते थे। लेकिन एक स्क्रिप्ट बनाकर जो मुझसे इनपुट स्वीकार करती है, मैं स्क्रिप्ट को कई पीडीएफ फाइलों को एक साथ खिला सकता हूं। स्क्रिप्ट ने प्रत्येक को क्रमिक रूप से संसाधित किया, जिसमें आधा घंटा या अधिक समय लग सकता था, लेकिन यह आधे घंटे का था जिसे मैं अन्य कार्यों के लिए उपयोग कर सकता था।

प्रवाह नियंत्रण

बैश स्क्रिप्ट बनाने के लिए यह पूरी तरह से स्वीकार्य है, जो अनिवार्य रूप से, उस सटीक प्रक्रिया के प्रतिलेख हैं जिसे आपने उस कार्य को प्राप्त करने के लिए लिया था जिसे आपको दोहराने की आवश्यकता है। हालाँकि, जानकारी के प्रवाह को नियंत्रित करके लिपियों को और अधिक शक्तिशाली बनाया जा सकता है। डेटा पर स्क्रिप्ट की प्रतिक्रिया को प्रबंधित करने के सामान्य तरीके हैं:

  • अगर/तो
  • लूप के लिए
  • लूप के दौरान
  • केस स्टेटमेंट

कंप्यूटर बुद्धिमान नहीं हैं, लेकिन वे डेटा की तुलना और विश्लेषण करने में अच्छे हैं। यदि आप उनमें कुछ डेटा विश्लेषण का निर्माण करते हैं, तो स्क्रिप्ट बहुत अधिक बुद्धिमान महसूस कर सकती हैं। उदाहरण के लिए, बुनियादी hello.sh स्क्रिप्ट चलती है कि गूंजने के लिए कुछ है या नहीं:

$ bash hello.sh foo
foo
$ bash hello.sh

$

यह अधिक उपयोगकर्ता के अनुकूल होगा यदि यह कोई इनपुट प्राप्त न होने पर एक सहायता संदेश प्रदान करता है। यह एक if/then कथन है, और यदि आप मूल रूप से बैश का उपयोग कर रहे हैं, तो आप शायद यह नहीं जान पाएंगे कि ऐसा कथन बैश में मौजूद है। लेकिन प्रोग्रामिंग का एक हिस्सा भाषा सीखना है, और थोड़े से शोध से आप if/then कथनों के बारे में जानेंगे:

if [ "$1" = "" ]; then
        echo "syntax: $0 WORD"
        echo "If you provide more than one word, enclose them in quotes."
else
        echo "$1"
fi

hello.sh . के इस नए संस्करण को चला रहे हैं में परिणाम:

$ bash hello.sh 
syntax: hello.sh WORD
If you provide more than one word, enclose them in quotes.
$ bash hello.sh "hello world"
hello world

एक स्क्रिप्ट के माध्यम से अपने तरीके से काम करना

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

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

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

बैश ईबुक के साथ प्रोग्रामिंग का हमारा परिचय डाउनलोड करें!


  1. Microsoft सूचियों के साथ शुरुआत कैसे करें

    Microsoft सूचियाँ Microsoft 365 ऐप स्टेबल में नवीनतम जोड़ है। हालांकि नाम आपको इसे एक और आउटलुक टास्क, टू-डू या प्लानर पुनरावृत्ति के रूप में लिखने के लिए प्रेरित कर सकता है, सूचियां वास्तव में एक अनूठी पेशकश है जो उपरोक्त में से किसी की तुलना में एक्सेल के करीब है। SharePoint द्वारा संचालित और वेब

  1. क्लिपचैम्प के साथ शुरुआत कैसे करें

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

  1. एलेक्सा स्किल के साथ शुरुआत कैसे करें

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