बॅशमध्ये प्रोग्रामिंग - भाग 1

आम्ही सामान्यत: प्रशासकीय किंवा फाईल व्यवस्थापन ऑपरेशनसाठी वापरतो, कन्सोल de linux आम्हाला कार्ये करण्यास परवानगी देऊन त्याची कार्यक्षमता त्या हेतूच्या पलीकडे वाढविते स्क्रिप्ट हा मार्गदर्शक बॅश प्रोग्रामिंगचा संपूर्ण संदर्भ असू इच्छित नाही, तर त्याऐवजी मूलभूत कमांडस आणि स्ट्रक्चर्सचा परिचय आहे, जो आपल्या जीएनयू / लिनक्स सिस्टमची शक्ती वाढविण्यास अनुमती देईल.

"स्क्रिप्ट" म्हणजे काय?

मुळात आपण म्हणतो की ही एक फाईल आहे ज्यात विशिष्ट प्रोग्रामिंग भाषेमध्ये कोड लिहिलेला कोड असतो जो सिस्टम विशिष्ट कामांसाठी वापरतो. त्यास बाह्य इनपुट किंवा ग्राफिकल इंटरफेस असणे आवश्यक नाही, परंतु यामुळे प्रक्रिया केलेल्या डेटाचे आउटपुट होऊ शकते (वापरकर्त्याने ते पाहिले नाही तरीही).

बाश द्वारे वापरली जाणारी भाषा त्याच्या स्वत: च्या दुभाषेद्वारे परिभाषित केली गेली आहे आणि कॉर्न शेल (केएसएच) किंवा सी शेल (सीएसएस) सारख्या इतर शेलचे वाक्यरचना एकत्र केली आहे. कन्सोलमध्ये सहसा वापरल्या जाणार्‍या बर्‍याच आज्ञा स्क्रिप्टमध्ये देखील वापरल्या जाऊ शकतात, त्याशिवाय विशिष्ट वितरणाशी संबंधित.

स्क्रिप्टची रचना

सुरू करण्यासाठी आमच्याकडे मजकूर संपादक असणे आवश्यक आहे आणि प्रोग्राम करण्याची इच्छा असणे आवश्यक आहे. आम्ही .sh विस्तारासह जतन केलेल्या फायली कन्सोलद्वारे कार्यान्वित केल्या जाऊ शकतात (किंवा स्पष्टीकरण दिलेली), पहिली ओळ जोपर्यंत खालीलप्रमाणे आहेः

#! / बिन / बॅश

हे सिस्टमला फाईल चालविण्यासाठी कन्सोल वापरण्यास सांगते. याव्यतिरिक्त, # वर्ण आपल्याला टिप्पण्या लिहिण्याची परवानगी देतो. सर्वात सोपा उदाहरण तयार करण्यासाठी आम्ही पुढील प्रतिमेमध्ये दिसणारी आणखी एक ओळ जोडतो:

प्रतिध्वनी कमांड स्क्रीनवर एक संदेश दाखवते, या प्रकरणात ठराविक "हॅलो वर्ल्ड!" जर आपण हे सेव्ह केले आणि कन्सोलद्वारे कार्यान्वित केले तर आपल्याला त्याचा परिणाम दिसेल.

मूलभूत आज्ञा

कोणत्याही प्रकारच्या प्रोग्रामसाठी खालील कमांड सामान्य आणि खूप उपयुक्त आहेत. आम्ही स्पष्ट करतो की आणखी बरेच काही आहेत, परंतु आत्ता आम्ही खालील गोष्टी सांगू.

उपनावे: शब्दांची शोर बदलून संक्षिप्त अक्षरे बदलू देते, कोड कमी करता.

# डाऊनलोड फोल्डर ऊर्फ प्रति = '/ होम / यूजर / डाऊनलोड्स' च्या पत्त्यासह प्रति नावाचे एक उपनाव तयार करा # प्रत्येक वेळी आम्हाला त्याचा वापर करायचा असेल तर आम्ही प्रति # नवीन शब्द कॉल करावा लागतो # हा उपनाव नष्ट करण्यासाठी आम्ही प्रति unalias unalias वापरा

ब्रेक: लूप पर्यंत आपण निवडण्यासाठी त्वरित बाहेर जाण्यास अनुमती देते (आम्ही नंतर लूपचा अभ्यास करू.)

# 1 5 1 2 3 मध्ये काउंटरसाठी "लूपच्या प्रत्येक वळणावर" साठी 4 ते 5 पर्यंत क्रमांक असा एक लूप तयार करा # आम्ही चर #counter च्या वर्तमान मूल्याचे मुद्रण करू, ज्याचे अक्षराद्वारे विश्लेषण केले जाते $ प्रतिध्वनी "$ काउंटर" # जर काउंटरचे मूल्य 3 असल्यास [– काउंटर –eq 3] नंतर # ब्रेक फायली पूर्ण झाल्यावर ब्रेक बाहेर जाईल.

सुरू ठेवा - खंडित होण्यासारखेच, सध्याच्या लूपकडे दुर्लक्ष करते आणि पुढीलकडे जाते.

# 1 5 1 2 3 मध्ये काउंटरसाठी "लूपच्या प्रत्येक वळणावर" साठी 4 ते 5 पर्यंत क्रमांक असा एक लूप तयार करा # जर काउंटरचे मूल्य 3 असल्यास [$ काउंटर –eq 3] तर # सुरू ठेवा उर्वरित वर्तमान चक्र पुढील फेरीत उडी मारून विश्लेषित होण्यापासून प्रतिबंधित करते, म्हणजेच, # मूल्य 3 मुद्रित केले जाणार नाही. सुरू ठेवा प्रतिध्वनी "$ काउंटर" पूर्ण झाले

घोषित करा: व्हेरिएबल्स घोषित करते आणि टाईपसेट प्रमाणेच त्यांना व्हॅल्यूज निर्दिष्ट करते (ते त्याच प्रकारे कार्य करतात) आम्ही काही पर्यायांसह हे एकत्र करू शकतो: -i घोषित पूर्णांक; केवळ-वाचनशील चल करीता, ज्यांचे मूल्य बदलता येत नाही; Arरे किंवा “अ‍ॅरे” साठी; - फंक्शन्ससाठी; व्हेरिएबल्ससाठी -x जे स्क्रिप्टच्या वातावरणाबाहेर "एक्सपोर्ट" केले जाऊ शकते.

–i num = 12 जाहीर करा –x pi = 3.14 घोषित करा

मदत: विशिष्ट आदेशासाठी मदत दर्शविते.

जॉब: चालू असलेल्या कार्यपद्धती दर्शविते.

# आम्ही प्रत्येक कमांडच्या thep # pid (प्रोसेस id) सह कमांडसचे नाव दर्शवितो. रोजगार -सीपी

चला अंकगणित अभिव्यक्तीचे मूल्यांकन करू

चला अ = 11 अ = a + 5 # शेवटी आपण 16 ची प्रतिध्वनी "11 + 5 = $ a" प्रिंट करू.

लोकल: लोकल व्हेरिएबल्स तयार करा, जे चुका टाळण्यासाठी स्क्रिप्टच्या फंक्शनमध्ये प्राधान्याने वापरले पाहिजे. आपण घोषित आदेश प्रमाणेच कार्ये वापरू शकता.

स्थानिक व्ही 1 = "हे लोकल व्हेरिएबल आहे"

लॉगआउट: शेलमधून पूर्णपणे लॉग आउट करण्यास अनुमती देते; आम्ही एकापेक्षा जास्त शेल विंडोवर कार्य करतो अशा प्रकरणांसाठी उपयुक्त आहे, ज्यामध्ये एक्झिट कमांड एका वेळी फक्त एक विंडो संपुष्टात आणण्याची परवानगी देईल.

printf: आपल्याला डेटा प्रिंट करण्यास आणि त्याचे स्वरूपन करण्यास अनुमती देते. त्यात बरेच पर्याय आहेत, म्हणून आम्ही काहींचा उल्लेख करू.

फ्लोटिंग क्रमांक म्हणून #% फ प्रिंट्स, नवीन नवीन # लाइन प्रिंटफ "एन एफएनए% 5 # साठी & डी दशांश संख्या पास करण्यास परवानगी देते प्रिंट एफ"% d डॉलर्स मध्ये मूल्यवान% d ऑर्डर आहेत. "२००० आहेत. 5.000000 ऑर्डरची किंमत 20 डॉलर्स आहे.

वाचा: मानक इनपुटमधून एक ओळ वाचा (उदाहरणार्थ कीबोर्डद्वारे डेटा लोड करण्यात मॉड्यूल). आम्ही असे पर्याय पास करू शकतोः वाचन मर्यादेसाठी वेळ देणे; -ए जेणेकरून प्रत्येक शब्द अ‍ॅनामे अ‍ॅरे मधील स्थानासाठी नियुक्त केला जाईल; -d रेषाच्या शेवटी लिहिले जाणारे डेलीमीटर वापरण्यासाठी; इतर.

एको "आपले नाव एंटर करा आणि ENTER दाबा" # व्हेरिएबलचे नाव वाचा वाचन नाव वाचा "आपले नाव $ नेम आहे"

प्रकार: कमांड आणि त्याच्या वर्तनचे वर्णन करते. प्रत्येक कमांडची डेटा व्याख्या शोधणे उपयुक्त ठरेल.

टाइप –a '[' # टाईप आपल्याला सांगते की [शेल बिल्टिन कमांड आहे [एक शेल बिल्टिन आहे # -a लिखित नावाने एक्झिक्युटेबल असलेली निर्देशिका समाविष्ट करण्यास अनुमती देते. [आहे / usr / बिन / [

ulimit: प्रशासकीय बदलांना अनुमती देणार्‍या किंवा वेगवेगळ्या प्रकारच्या वापरकर्त्यांच्या उद्देशाने असलेल्या प्रोग्रामसाठी आदर्श असलेल्या काही सिस्टम स्त्रोतांच्या प्रक्रियेत प्रवेश आणि वापर मर्यादित करते. मर्यादा सेट करताना आम्ही एक संख्या लिहितो जी मर्यादेच्या किलोबाइटचे प्रतिनिधित्व करते.

# आम्ही आमची सद्य मर्यादा पाहू शकतो #ff वापरकर्त्यांना 512000 केबी (500 #Mb) पेक्षा जास्त फायली तयार करण्यास सक्षम नसण्यास मर्यादित करण्याची परवानगी देते - 512000 # -v प्रक्रियेच्या आभासी मेमरीला मर्यादित करते. ulimit 512000v XNUMX

प्रतीक्षा करा: सुरू ठेवण्यासाठी विशिष्ट प्रक्रिया किंवा नोकरीची प्रतीक्षा करा.

# स्क्रिप्ट पीडच्या प्रक्रियेसाठी # 2585 प्रतीक्षा करीत आहे

2585 ​​प्रतीक्षा करा

अन्य स्क्रिप्ट्समध्ये जोडू शकणा Other्या इतर कमांडल्स चिन्हे दाखवतात.

!!: पुन्हा शेवटची आज्ञा चालवा

! wer: “wer” या अभिव्यक्तीपासून सुरू झालेली शेवटची आज्ञा कार्यान्वित करते.

'==', '! =', '>', '<', '> =' आणि '<=': रिलेशनल ऑपरेटर.

|: ओआर ऑपरेटर सामान्यत: दोन नियमित अभिव्यक्तींमध्ये सामील व्हायचा.

: एस्केप कमांड जी आपल्याला अभिव्यक्त्यांचे स्वरूपन करण्यास अनुमती देते. उदाहरणार्थ: ध्वनी सतर्कतेसाठी अ, न्यूलाइनसाठी एन, बॅकस्पेससाठी बी, इ.

धन्यवाद जुआन कार्लोस ऑर्टिज!

आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.

  1.   मध्यम कठीण म्हणाले

    मस्त! असो 2 टिप्पण्या: उबंटू टॅग अर्धा बरेच आहे, कारण ते जेनेरिक सामान्य करते. आणि जर ही ट्यूटोरियल पुढे जात राहिली तर ते एकमेकांशी जोडले गेले तर चांगले होईल….
    त्याखेरीज ही चाल मनोरंजक आहे!

  2.   लिनक्स वापरुया म्हणाले

    चांगले योगदान! मस्त!

  3.   जियोव्हानी एस्कोबार सोसा म्हणाले

    ज्यांना या प्रकरणात अधिक जाणून घ्यायचे आहे त्यांच्यासाठी केवळ गहाळ संदर्भ. आपल्या देशांमध्ये सापडणे इतके सोपे नसले तरी काही चांगल्या गोष्टी आहेत
    - लिनक्स कमांडस, संपादक आणि शेल प्रोग्रामिंग, मार्क सोबेल (धडा 8) चे व्यावहारिक मार्गदर्शक
    - प्रो बॅश प्रोग्रामिंग, ख्रिस एफए जॉन्सन (जरी हे इतर संदर्भ किंवा थोडे अधिक ज्ञान असलेल्यांसाठी आहे).

    चांगला लेख.

  4.   लिनक्स वापरुया म्हणाले

    चांगली तारीख! धन्यवाद!

  5.   पॅट्रसिओ डोराँटेस जॅमर्णे म्हणाले

    : @ "या रुपात लॉग इन" फंक्शनने माझी मागील टिप्पणी हटविली, म्हणून मी त्याचा पुढील सारांश घेऊ:
    रोजगार -सीपी
    बॅश: रोजगार: -सी: अवैध पर्याय
    रोजगार: वापर: रोजगार [-lnprs] [जॉबस्पेक…] किंवा जॉब्स -x कमांड [आर्गेज]

    -eq -gt -lt दशांश बिंदू चल स्वीकारू नका, फोरम आणि फोरम दरम्यान मला आढळले की बीसी एक चांगला मित्र आहे:
    जर [`9.999> 10 | bc` -eq 1]; मग
    एको "9.999 10 पेक्षा मोठे आहे, आपला प्रोसेसर अद्याप कार्यरत आहे याची खात्री करा"
    आणखी
    प्रतिध्वनी 9.999 10 पेक्षा जास्त नाही, सर्व काही सामान्यपणे कार्य करते
    fi

  6.   ब्रॉक्लिनमधून नाही म्हणाले

    हे पोस्ट बॅश स्क्रिप्टिंगच्या सर्व सामान्यतेचा सारांश देते:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    या साइटवर आपल्याला बॅश वैचित्र्यतेबद्दल बरेच प्रश्न आणि उत्तरे आढळतीलः
    http://unix.stackexchange.com/questions/tagged/bash

    येथे काही खरोखर छान स्क्रिप्ट्स आहेत आणि अहो, आपण इतरांच्या स्क्रिप्ट वाचून त्या शिकू शकता:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   ब्रॉक्लिनमधून नाही म्हणाले

    बॅश वगळता आपण काय बोलता ते बरोबर आहात. मी पाहिलेल्या प्रत्येक प्रणालीमध्ये / बिन / बॅशमध्ये बॅश असतो.

    परंतु अजगर, पर्ल, रुबी इत्यादींसाठी ते वापरणे ठीक आहे. मी करतो

  8.   गिल म्हणाले

    योगायोगाने, महाविद्यालयात आम्ही बॅश स्क्रिप्टिंग वापरत आहोत म्हणजे डेटा १०, खूप चांगला!

  9.   अलेक्स vi म्हणाले

    डाउनलोड करण्यासाठी पीडीएफ आवृत्ती चांगली असेल !! 😀

  10.   मार्को अँटोनियो डी फुएन्टेस म्हणाले

    खूप चांगली साइट. शेवटी मला काहीतरी उपयुक्त वाटले. धन्यवाद.