आरंभक मार्गदर्शिका बाश - इंपुट पॅरामेटर्स

Beginners Guide to BASH या मालिकेतील दुसऱ्या भागात आपले स्वागत आहे जे नवशिक्यासाठी नवशिक्याद्वारे लिहिलेले केवळ एकच BASH ट्युटोरियल आहे.

माझे ज्ञान वाढविते आणि अखेरीस आम्ही आशा करतो की या मार्गदर्शकाच्या वाचकांना त्यांचे ज्ञान वाढवतील जे आपण काही हुशार लिपी लिहू शकाल.

मागील आठवड्यात मी आपली पहिली स्क्रिप्ट तयार केली जे फक्त "हॅलो वर्ल्ड" असे शब्द प्रदर्शित केले. हे टेक्स्ट एडिटर्स, टर्मिनल विंडो कसे उघडावे, आपली स्क्रिप्ट कुठे ठेवायची, कोट्स (""), "हॅलो वर्ल्ड" आणि एस्केप कॅरॅण्ड्सवरील काही सुधारात्मक बिंदू कसे प्रदर्शित करावेत यासारख्या विषयांना समाविष्ट करते.

या आठवड्यात मी इनपुट पॅरामीटर्स कवर करणार आहे. अशा इतर काही मार्गदर्शक आहेत जे या गोष्टी शिकवतात पण मला वाटते की ते काही कमी पातळीवरील सामग्रीमध्ये उडी मारतात आणि कदाचित खूप माहिती प्रदान करतात.

पॅरामीटर म्हणजे काय?

मागील ट्युटोरियलमध्ये "हॅलो वर्ल्ड" स्क्रिप्टमधे हे सर्व खूप स्थिर होते. पटकथा खरोखरच काहीच करत नव्हती.

"हॅलो वर्ल्ड" स्क्रिप्टमध्ये आम्ही कसे सुधारणा करू शकतो?

जो स्क्रिप्टला चालविणार्या व्यक्तीला स्मित देणार्या स्क्रिप्टबद्दल काय? "हॅलो वर्ल्ड" म्हणण्याऐवजी हे "हॅलो गॅरी", "हॅलो टिम" किंवा "हॅलो डॉली" असे म्हणेन.

इनपुट पॅरामीटर्स स्वीकारण्याची क्षमता न देता आम्हाला तीन स्क्रिप्ट "hellogary.sh", "hellotim.sh" आणि "hellodolly.sh" लिहिण्याची आवश्यकता आहे.

आमच्या स्क्रिप्टला इनपुट पॅरामीटर्स वाचण्याची परवानगी देऊन आपण एखाद्या स्क्रिप्टला वापरू शकता.

हे करण्यासाठी टर्मिनल विंडो उघडा (CTRL + ALT + T) आणि खालील टाइप करून आपल्या स्क्रिप्ट फोल्डरवर नेव्हिगेट करा: ( cd कमांड बद्दल )

सीडी स्क्रिप्ट

खालील टाइप करून greetme.sh नावाची एक नवीन स्क्रिप्ट तयार करा: ( टच कमांड बद्दल )

स्पर्श greetme.sh

खालील टाइप करून आपल्या आवडत्या संपादकातील स्क्रिप्ट उघडा: ( नैनो कमांड बद्दल )

नॅनो नमस्कार greetme.sh

नॅनोच्या आत खालील मजकूर प्रविष्ट करा:

#! / bin / bash echo "हॅलो $ @"

फाईल सेव्ह करण्यासाठी CTRL आणि O दाबा आणि नंतर फाइल बंद करण्यासाठी CTRL आणि X दाबा.

स्क्रिप्ट खालील करण्यासाठी आपल्या नावाच्या बदली आदेश ओळमध्ये खालील प्रविष्ट करा.

श greetme.sh

जर मी माझ्या नावाची स्क्रिप्ट चालवली तर "हॅलो गॅरी" हे शब्द प्रदर्शित होतील.

पहिल्या ओळीमध्ये #! / Bin / bash लाइन आहे जी फाइलला बॅश स्क्रिप्ट म्हणून ओळखण्यासाठी वापरली जाते.

दुसरी ओळ हॅलो श्लोक करण्यासाठी इको स्टेटमेंट वापरते आणि नंतर तेथे अजीब $ @ नोटेशन आहे. ( इको कमांड बद्दल )

$ @ स्क्रिप्टच्या नावासह प्रविष्ट केलेले प्रत्येक पॅरामीटर प्रदर्शित करण्यासाठी विस्तृत करते जर आपण "sh greetme.sh tim" टाईप केले तर "हॅलो टिम" हा शब्द प्रदर्शित होईल. आपण "greetme.sh tim smith" टाईप केल्यास "हॅलो टिम स्मिथ" हा शब्द प्रदर्शित होईल.

हे नुकतेच केवळ पहिले नाव वापरून नमस्कार करणे नम्र असेल. ते मला भेटतात तेव्हा कोणीही "हॅलो गॅरी न्यूनेल" म्हणत नाही, ते "हॅलो गॅरी" म्हणतील.

चला स्क्रिप्ट बदलुया जेणेकरून ते फक्त पहिल्या मापदंडाचा वापर करते. खालील टाइप करून नॅनो मध्ये greetme.sh स्क्रिप्ट उघडा.

नॅनो नमस्कार greetme.sh

स्क्रिप्ट बदला म्हणजे ते खालीलप्रमाणे वाचेल:

#! / bin / bash एलो "हॅलो $ 1"

CTRL आणि O दाबून स्क्रिप्ट सुरक्षित करा आणि नंतर CTRL आणि X दाबून बाहेर पडा.

खाली दाखवल्याप्रमाणे स्क्रिप्ट चालवा (आपले नाव माझे नाव बदला):

श greetme.sh गॅरी न्यूनेल

जेव्हा आपण स्क्रिप्ट चालवाल तेव्हा फक्त "हॅलो गॅरी" (किंवा आशेने "हॅलो" आणि आपले नाव जे काही असेल ते)

$ Symbol नंतर 1 ही मूलभूतपणे echo कमांड म्हणतो, पहिल्या पॅरामीटरचा वापर करा. आपण $ 2 ला $ 2 सह पुनर्स्थित केल्यास तो "हॅलो नील" (किंवा तुमचा आडनाव जो असेल) प्रदर्शित होईल.

प्रसंगोपात जर आपण $ 3 सह $ 3 बदलले आणि फक्त 2 पॅरामीटर्ससह स्क्रिप्ट चालविले तर आउटपुट "हॅलो" असेल.

प्रत्यक्षात दाखल केलेल्या मापदंडांची संख्या प्रदर्शित आणि हाताळणे शक्य आहे आणि नंतरच्या ट्यूटोरियल मध्ये मी हे दाखवित आहे की प्रमाणीकरण उद्देशांसाठी पॅरामीटर संख्या कशी वापरायची.

नमूद केलेल्या नमुन्यांची संख्या प्रदर्शित करण्यासाठी greetme.sh स्क्रिप्ट (नॅनो नमस्कार स्वागत.श) आणि खालीलप्रमाणे मजकूर सुधारित करा:

#! / बिन / बाश इको "आपण $ # नावे दिली आहेत" एलो "हॅलो $ @"

स्कोप आणि CTRL आणि X नॅनो बाहेर येण्यासाठी सेव्ह करण्यासाठी CTRL आणि O दाबा.

$ 2 द्वितीय रेषेवरील प्रविष्ट केलेल्या पॅरामीटर्सची संख्या दर्शवितो.

आतापर्यंत हे सर्व कादंबरीचे नाही परंतु अतिशय उपयुक्त नाही. कोण फक्त "हॅलो" प्रदर्शित करते स्क्रिप्ट आवश्यक आहे?

इको स्टेटमेन्टसाठी प्रत्यक्ष वापर म्हणजे उपयोगकर्ताला शब्दशः आणि अर्थपूर्ण आउटपुट प्रदान करणे. आपण कल्पना करू शकता की आपण काहीतरी क्लिष्ट करु इच्छित आहात ज्यात काही गंभीर संख्या क्रंचिंग आणि फाइल / फोल्डर हेरफेर यांचा समावेश आहे तर वापरकर्त्याला मार्ग दर्शविण्याच्या प्रत्येक टप्प्यात काय चालले आहे ते प्रदर्शित करणे उपयुक्त ठरेल.

याच्या उलट, इनपुट मापदंड आपल्या स्क्रिप्टला परस्परसंवादी बनविते. इनपुट पॅरामिटर्सशिवाय आपल्याला डझनभर स्क्रिप्टची आवश्यकता असते जे सर्व समान गोष्टी करत आहेत परंतु थोड्या वेगळ्या नावांसह.

या सर्व गोष्टी लक्षात घेता काही उपयुक्त इनपुट पॅरामीटर्स आहेत जे माहित असणे एक चांगली कल्पना आहे आणि मी त्यास एका कोड स्निपेटमध्ये समाविष्ट करू.

आपली नमस्कारित केलेली स्क्रिप्ट उघडा आणि खालीलप्रमाणे दुरुस्त करा:

#! / bin / bash इको "फाइलनाव: $ 0" प्रतिध्वनी "प्रक्रिया आयडी: $$" प्रतिध्वनी "---------------------------- --- "इको" आपण $ # नावे "प्रतिध्वनी" हॅलो $ @ प्रविष्ट केली आहे

फाईल सेव्ह करण्यासाठी CTRL आणि O दाबा आणि बाहेर पडण्यासाठी CTRL आणि X दाबा.

आता स्क्रिप्ट चालवा (आपल्या नावाशी पुनर्स्थित करा).

श greetme.sh

यावेळी स्क्रिप्ट खालील प्रदर्शित करेल:

फाइलनाव: greetme.sh प्रक्रिया ID: 18595 ------------------------------ आपण 2 नावे हॅलो गॅरी न्यूवेल प्रविष्ट केले

स्क्रिप्टच्या पहिल्या ओळीवर $ 0 आपण चालत असलेल्या स्क्रिप्टचे नाव प्रदर्शित करते. लक्षात घ्या की डॉलर शून्या आणि डॉलर ओ नाही

दुसरी ओळवरील $$ आपण कार्यरत असलेली स्क्रिप्टची प्रक्रिया id दर्शवेल. हे उपयुक्त का आहे? आपण अग्रभूमीतील स्क्रिप्ट चालवत असल्यास आपण फक्त CTRL आणि C दाबून रद्द करू शकता. आपण पार्श्वभूमीत स्क्रिप्ट चालवत असल्यास आणि हे लूप करणे आणि त्याच गोष्टी करणे आणि त्यानुसार करणे किंवा आपण आवश्यक असलेल्या आपल्या सिस्टमला हानी पोहचण्यास प्रारंभ करणे सुरु केले ते मारणे.

पार्श्वभूमीत चालत असलेल्या स्क्रिप्टला मारण्यासाठी आपल्याला स्क्रिप्टची प्रक्रिया ID आवश्यक आहे. जर हे स्क्रिप्टने त्याच्या आउटपुटच्या रूपात प्रक्रिया आयडी दिली तर ते चांगले होणार नाही. ( ps विषयी आणि kill कमांडस )

अखेरीस या विषयावर संपण्यापूर्वी मी आऊटपुट कुठे आहे याबद्दल चर्चा करायची. प्रत्येकवेळी स्क्रिप्ट चालवली जाते तेव्हा स्क्रीनवर आउटपुट प्रदर्शित झाले आहे.

स्क्रिप्ट आउटपुट आउटपुट फाइलवर लिहिणे हे सामान्य आहे असे करण्यासाठी खालीलप्रमाणे तुमची स्क्रिप्ट चालवा:

sh greetme.sh gary> greetme.log

वरील सिग्नलमध्ये प्रतीक "नमस्कार गॅरी" असे नमूद केलेले एक फाइल आहे ज्यास greetme.log म्हणतात.

प्रत्येकवेळी आपण स्क्रिप्ट> चिन्हाने चालवता तेव्हा आउटपुट फाइलची सामग्री अधिलिखित करते. आपण फाईलला जोडण्यास प्राधान्य देत असल्यास> सह> पुनर्स्थित करा.

सारांश

आपण आता स्क्रीनवर मजकूर लिहिण्यासाठी आणि इनपुट मापदंड स्वीकारण्यास सक्षम असावे.