टर्मिनल शुक्रवार: बॅश [की विस्तार]

सर्वप्रथम मला माफी मागण्यास आवडेल, गेल्या शुक्रवारपासून मी पोस्ट लिहू शकलो नाही म्हणून आज मी हरवलेल्या दिवसाची भर घालण्यासाठी एक अतिरिक्त भर घालत आहे. 🙂

कंस विस्तार

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

उदाहरण:

cho 1,2,3} ए 1 ए 2 ए 3 प्रतिध्वनी

स्वल्पविराम सह वापरले जाते तेव्हा (,) कंसात व्हॅल्यू अ आणि व्हॅल्यूज मधील कॉम्बिनेशन तयार करते. कळा बाहेर कोणतेही मूल्य नसल्यास, की मध्ये असलेले प्रत्येक मूल्य एकदाच दर्शवेल.

$ इको {ए, बी, सी} एबीसी

त्याचा वापर अजिबात जटिल नाही, इतर अनेक सामान्य उदाहरणे आहेत जसे की फोल्डरमध्ये अनेक निर्देशिका तयार करणे

$ एमकेडीर ~ / नोकरी / {एक, दोन, तीन, चार, पाच}

हे जॉब्स फोल्डरमध्ये पाच फोल्डर्स तयार करते, हे एका वेळी एकाच कमांडमध्ये प्रवेश करण्यासारखे आहे. 5 निर्देशिका तयार करत आहे.

दोन बिंदूंनी विस्तार आहे .. हे संख्या किंवा वर्णांची एक मालिका तयार करते जी प्रारंभिक मूल्यापासून अंतिम मूल्यापर्यंत जाते, लिखित संख्या वापरू नका.

cho इको {१.{} # अचूक १ २ 1 5 1 cho एको {ए..एफ} # अचूक एबीसीडीएफ $ एको 2 ए..3} # चुकीचा {ए..4} # मला वाटते की मला कधीही मिळणार नाही पत्रात या निळ्या रंगाची सवय होती

आपण एक चक्र तयार करून वेळ वाचवू शकतो साठी

# (I (i = 1; i <= 5; i ++)) साठी लेखनाची स्थिरता; "माझा नंबर $ i" एको करू; पूर्ण केला माझा नंबर 1 माझा नंबर 2 माझा नंबर 3 माझा नंबर 4 माझा नंबर 5 # ब्रेस विस्ताराचा वापर करून कोड जतन करा. $ माझ्यासाठी {1..5} मध्ये; "माझा नंबर cho i; एको केला माझा नंबर 1 माझा नंबर 2 माझा नंबर 3 माझा नंबर 4 माझा नंबर 5 # अर्थात आउटपुट भिन्न असले तरी ते वापरणे योग्य आहे. $" माझा नंबर "{1..5 cho एको. माझा नंबर 1 माझा नंबर 2 माझा नंबर 3 माझा नंबर 4 माझा नंबर 5

मला असे वाटते की ही संकल्पना स्पष्ट आहे, हाहा आता मी केवळ टिप्पणी करतो की ती जोडण्यायोग्य आणि घरटे आहे.त्याचा अर्थ काय?
एकत्रित करण्यायोग्य की आम्ही एक किंवा अधिक की मध्ये सामील होऊ शकतो

cho इको {ए.सी} }..1.}} ए १ ए २ ए b बी बी बी बी सी सी सी २ सी

अनेकांना घरटे देऊन आपण विस्तार की मध्ये विस्तार की वापरू शकता याची कल्पना केली जाईल

$ इको {ए, सी {1..3}, डी} ए सी 1 सी 2 सी 3 डी

आणि शेवटी पासून बाश 4 मूल्ये वाढविणे शक्य आहे.

$ एको {0..20..2} 0 2 4 6 8 10 12 14 16 18 20 XNUMX

हे सर्व आजसाठी आहे, म्हणून मला लोक वाचण्यासाठी धन्यवाद 🙂

अतिरिक्त

लोकल बिन कसे तयार करावे

जेव्हा मी ए आहे लोकल म्हणजे माझी एक निर्देशिका आहे ज्यात आपल्या स्वतःच्या स्क्रिप्ट्स आहेत आणि त्या साध्या कमांडच्या रुपात कार्यान्वित करणे शक्य आहे ...

हे मिळवणे तुलनेने सोपे आहे, आपल्याला प्रथम एक निर्देशिका तयार करणे आवश्यक आहे जिथे आपण स्क्रिप्ट जतन करू.

mkdir. / .bin # या उदाहरणात ते लपवले जाईल

स्क्रिप्ट्स सेव्ह करण्यासाठी आमच्याकडे आता आमच्याकडे फोल्डर आहे परंतु जोपर्यंत आम्ही नवीन .bin ची पथ $ PATH मध्ये जोडत नाही तोपर्यंत ते कार्य करणार नाही
त्यासाठी फाईल एडिट झाली आहे बॅश_ प्रोफाइल, आणि ओळ जोडली आहे.

निर्यात पथ = $ पथ: ~ / .बिन

आणि लोकल बिन तयार करण्यासाठी व्होइला पुरेसे आहे, अर्थातच आवश्यक असल्यास रूट परवानग्या विचारतील उदाहरणार्थ आपण द्रुत स्क्रिप्ट लिहितो.

#! / बिन / बॅश "हाय $ 1, कसे आहात?"

च्या नावाने ते सेव्ह करा हॅलो
स्क्रिप्टला अंमलबजावणीची परवानगी देण्यात आली आहे आणि टर्मिनलवरून ती कॉल करणे पुरेसे असेल

$ हॅलो वडा # हा हॅलो वडा हा संदेश दर्शवेल, कसे आहात?

तर या द्रुत युक्तीने आपण आपल्या स्क्रिप्ट जलद चालवू शकता

आजचे लोक चांगले आहेत That's
PS चुकांबद्दल क्षमस्व, जर तेथे असतील तर माझे डोळे आधीच हाहााहा बंद आहेत 😀


लेखाची सामग्री आमच्या तत्त्वांचे पालन करते संपादकीय नीति. त्रुटी नोंदविण्यासाठी क्लिक करा येथे.

26 टिप्पण्या, आपल्या सोडा

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

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही.

*

*

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

  1.   धुंटर म्हणाले

    मी बराच काळ बॅशच्या समस्येमध्ये होतो आणि हे कंस विस्तृत मला समजले नाही, धन्यवाद.

    पथ युक्तीवर फेडोरा डीफॉल्टनुसार असे काहीतरी करते परंतु "~ / .local / bin" मध्ये मी जेसीला आणलेल्या बॅश_प्रोफाइलवरील एक झलक पहा.

    पथ = AT पथ: OME मुख्यपृष्ठ /. लोकल / बिन: OME मुख्यपृष्ठ / बिन
    पथ पाठवा

    1.    रिकार्डो म्हणाले

      मला काही चिंता आहेतः
      १. पॉईंट्सने विस्तारासह मला त्याला दोन अंतराल कसे द्यावेत; वयोगटातील .1 1..24,55..90} आणि मी 1 ते 24 वयोगटांचा विस्तार करतो आणि 55 ते XNUMX पर्यंत सुरू ठेवतो. कारण मी ते केले नाही. का?

      २. प्रथम मूल्य शून्य आणि क्रमांकासह पुढे चालू ठेवू इच्छित असल्यास:
      विजेट: http://manga.favorito / प्रतिमा http://manga.favorito/imagen1
      मी पुढील मार्गाने प्रयत्न केला पण विजेट मिळाले नाही: http://manga.favorito/imagen{, १..1२ me माझ्या मते, मला प्रथम नांवाशिवाय नाव सोडावे लागेल आणि 42 ते 1 पर्यंत क्रमांकासह पुढे जावे लागेल परंतु ते तसे नव्हते. का?

    2.    वाडा म्हणाले

      आपल्याकडे काही डिस्ट्रॉस आहेत .बिन आहेत किंवा आहेत परंतु हे असे आहे जेणेकरून प्रत्येकजणास हे समजेल की ते हे कोणत्याही डिस्ट्रोमध्ये करणे शक्य आहे: डी, ​​थांबविल्याबद्दल धन्यवाद.

  2.   डेमो म्हणाले

    लिनक्स वर्ल्ड आणि त्याच्या सुरक्षिततेसाठी ज्ञानाच्या या योगदानासाठी खूप चांगले, काही शुक्रवार मला आशा आहे की टर्मिनलमध्ये पेनड्राईव्ह कसे बनवायचे आणि टर्मिनलमध्ये कोणत्याही फ्री सिस्टमची आयएसओ डीव्हीडी / सीडी प्रतिमा कशी बर्न करावी.

    1.    वाडा म्हणाले

      तुमच्या शब्दांबद्दल धन्यवाद भाऊ next मी वचन देतो की पुढच्या शुक्रवारी मी ते पोस्ट करेन. आणि मी विम हाहााहा सानुकूलित करण्याबद्दल एक असले पाहिजे परंतु ते फक्त विम घेईल असे त्यांना वाटू नये अशी माझी इच्छा होती.

  3.   edoardo_or म्हणाले

    उत्कृष्ट टर्मिनल लेख, मी बर्‍याच वेळात वाचलेला सर्वोत्कृष्ट, या शैलीची शिकवण प्रकाशित करणारे बरेच ब्लॉग मोजले. खूप खूप धन्यवाद !!

    1.    वाडा म्हणाले

      खूप खूप आभारी आहे keep मी प्रयत्न करत राहीन.

  4.   जुआन्ली म्हणाले

    स्थानिक बिन उत्कृष्ट टीप!
    धन्यवाद!

    1.    वाडा म्हणाले

      उत्कृष्ट, छान की आपल्यासाठी उपयुक्त आहे, भाऊ निघून गेल्याबद्दल त्याचे आभार

  5.   गिसकार्ड म्हणाले

    खुप छान! याबद्दल कोणतीही कल्पना नाही. धन्यवाद 🙂

    1.    वाडा म्हणाले

      हे वाचण्यासाठी वेळ दिल्याबद्दल आपले स्वागत आहे भाऊ 😀

  6.   रिकार्डो म्हणाले

    मला काही चिंता आहेतः
    १. पॉईंट्सने विस्तारासह मला त्याला दोन अंतराल कसे द्यावेत; वयोगटातील .1 1..24,55..90} आणि मी 1 ते 24 वयोगटांचा विस्तार करतो आणि 55 ते XNUMX पर्यंत सुरू ठेवतो. कारण मी ते केले नाही. का?

    २. प्रथम मूल्य शून्य आणि क्रमांकासह पुढे चालू ठेवू इच्छित असल्यास:
    विजेट: http://manga.favorito/imagen http://manga.favorito/imagen1

    मी पुढील मार्गाने प्रयत्न केला पण विजेट मिळाले नाही: http://manga.favorito/imagen{, १..1२ me माझ्या मते, मला प्रथम नांवाशिवाय नाव सोडावे लागेल आणि 42 ते 1 पर्यंत क्रमांकासह पुढे जावे लागेल परंतु ते तसे नव्हते. का?
    * क्षमस्व परंतु मी उत्तर म्हणून प्रथम पोस्ट ठेवले आणि काही भागात ते चुकीचे होते

    1.    वाडा म्हणाले

      1.- आपले तर्कशास्त्र चुकीचे आहे आपण प्रयत्न करीत असताना देखील त्याला घरटे करावे लागेल $ echo {{1..24},{55..90}}

      २- मागील सारखेच ... $ echo "URL"{,{1..42}}

      भाऊ काळजी करू नका, आम्ही येथे आहोत आम्हाला मदत करण्यासाठी 🙂

  7.   jvk85321 म्हणाले

    इको सह बदलण्यासाठी हे असे दिसेल

    प्रतिध्वनी "माझा नंबर" .1 5..5} $ '\ n' | सेड-ए: ए-ई '$! एन; एस / \ एन / \ एन /; टा' | sed -e: a -e '$! N; s / 5 \ n / XNUMX /; टा'

    पण मी प्रिंटएफला प्राधान्य देतो

    printf "I, I% d \ n" {1..5}

    आणि की विस्ताराची समान संकल्पना वापरा

    atte
    jvk85321

    1.    jvk85321 म्हणाले

      टर्मिनल बॉक्स कसे ठेवता ????

      atte
      jvk85321

  8.   jvk85321 म्हणाले

    कोड टॅग कार्य करत असल्यास तपासणी करीत आहे
    हेह

    इको सह बदलण्यासाठी हे असे दिसेल

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    आणि की विस्ताराची समान संकल्पना वापरा

    atte
    jvk85321

    1.    jvk85321 म्हणाले

      माझ्याकडे काही दोष आहेत परंतु ते कार्य करीत आहे

      मी जिवंत मलुको आहे

      त्रास दिल्याबद्दल क्षमस्व

      atte
      jvk85321

      1.    वाडा म्हणाले

        हाहा आपण उत्तर दिले पण ते लेबल दरम्यान आहे जागा नाही ...

        आणि साठीच्या जागेवर इतके पाईप हाहाहा करणे पुरेसे नसणे आवश्यक आहे:
        echo -e "Mi numero "{1..5}"\n\b"

        स्क्रिप्टमध्ये मजकूर मुद्रित करण्याचा सर्वात चांगला मार्ग म्हणजे प्रिंटएफ. हा अधिक पोर्टेबल आहे परंतु परंपरेनुसार तो प्रतिध्वनीचा वापर करतो.

      2.    वाडा म्हणाले

        मी मोकळी जागा घेतो! हाहाहााहा

        चला आता पाहूया 😀

      3.    वाडा म्हणाले

        संभोग करणे हे "कोडपेक्षा" "" "" "कोडपेक्षा" ""पेक्षा कमी" कोड आहे "" हाहााहा. "

      4.    jvk85321 म्हणाले

        इको -e ही समस्या प्रमाणित नाही, म्हणून ती सर्व सिस्टमवर कार्य करत नाही.

        तसेच गोंधळलेले बाहेर येते
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        आणि यासह
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        मला वाटतं की दुसरा परिणाम चांगला सादर करतो, हाहा

        atte
        jvk85321

      5.    jvk85321 म्हणाले

        ही लेबले गोंधळलेली आहेत, हे आता ते कार्य करत आहेत का ते पाहूया
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        आणि यासह
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        मला वाटतं की दुसरा परिणाम चांगला सादर करतो, हाहा
        atte
        jvk85321

      6.    jvk85321 म्हणाले

        असं असलं तरी, ओळी दरम्यान मोकळी जागा ठेवा, म्हणूनच मला एचटीएमएलचा तिरस्कार आहे, हाहााहा

  9.   जोकिन म्हणाले

    उत्कृष्ट! मी टाळ्या वाजवतो तुझे

    मला कळत नव्हते की कळा लावल्या जाऊ शकतात, कारण मी कधीही त्यांचा वापर करण्याचा प्रयत्न केला नाही, यामुळे खरोखर बरेच कोड वाचले जातात आणि या मार्गाने हे अधिक वाचनीय देखील आहे. धन्यवाद!

    1.    वाडा म्हणाले

      भाऊ निघून गेल्याबद्दल धन्यवाद, मला आनंद झाला की तो उपयुक्त युटिलिडॅड होता

      1.    जोकिन म्हणाले

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