लिनक्स वितरण के बावजूद हम उपयोग कर रहे हैं, लेकिन संदेह है कि मेरा पसंदीदा उबंटू है जैसे ही हम इस प्रणाली के उपयोग में आते हैं, कुछ निश्चित स्वचालन की जरूरत है। वह है: हमारे बनाएँ खुद की आज्ञा वैयक्तिकृत तरीके से कुछ कमांड का प्रदर्शन करना। कुछ कारणों से यह आवश्यकता हो सकती है:
- वाक्य रचना को सरल कीजिए उन आज्ञाओं का, जिन्हें हम आमतौर पर निष्पादित करते हैं।
- ऐसी कार्रवाई करें जो किसी को भी कवर करती हैं जरूरत है कि प्रणाली में पूर्वाभास नहीं है परिचालन।
- अनुक्रम आदेश कि हम बार-बार दोहराते हैं।
हालाँकि किसी भी डायरेक्टरी से बैश स्क्रिप्ट को चलाया जा सकता है, यह आमतौर पर होता है इन लिपियों को होस्ट करने के लिए एक निर्देशिका बनाएँ। मेरे मामले में:
$ mkdir /home/pedro/.bin
मुझे इस पर विश्वास है निर्देशिका (नाम के सामने की अवधि को छिपाकर) मेरे द्वारा उपयोग की जाने वाली सभी लिपियों को रखने के लिए। कि निर्देशिका के नाम को छिपाया गया है, इसके अलावा और कोई अर्थ नहीं है - जब तक कि स्पष्ट रूप से अन्यथा निर्दिष्ट न हो - ग्राफ़िकल मोड में फ़ाइल व्यूअर से देखने / घर / पेड्रो करने पर दिखाई नहीं देगा.
अब आपको करना है लिनक्स को सूचित करें कि उसे वहां भी देखना चाहिए (/home/pedro/.bin) वे आदेश जो टर्मिनल से निष्पादित किए जाते हैं।
$ PATH=$PATH;/home/pedro/.bin
इस तरह से सिस्टम हमारे आदेशों की तलाश करेगा जब तक हम सत्र बंद नहीं करते. इस एसोसिएशन को स्थायी बनाने के लिए:
$ sudo nano /etc/environment
और हम जोड़ते हैं
:/home/pedro/.bin
पथ रेखा के अंत में, उस निर्देशिका के पते से पहले बृहदान्त्र को नहीं भूलना बहुत महत्वपूर्ण है, जिसमें हम शामिल हैं यह जोड़ तंत्र है.
हमारी पहली चरण-दर-चरण स्क्रिप्ट
हम अपनी फाइल बनाते हैं, जैसे मेरे मामले में:
$ touch ~/.bin/donde
और इसे संपादित करने के लिए, आप अपने पसंदीदा संपादक का उपयोग कर सकते हैं या इस संकेत का पालन कर सकते हैं:
$ gedit ~/.bin/donde &
और हम निम्नलिखित सामग्री जोड़ते हैं:
#!/usr/bin/env bash if [ $# -lt 1 ]; then echo "Necesitas pasar un parámetro" else whereis $1 fi
लिपि विश्लेषण
हमारी पहली कॉल लाइन «कुटिया»(#! / Usr / बिन / env बैश) लिनक्स को रिपोर्ट करने के लिए कहें बैश शेल कहां स्थित है और बैश की आवश्यकताओं के अनुसार इस प्रकार का निष्पादन किया जाता है। यह एहतियात यह सुनिश्चित करना सुविधाजनक है कि हमारी स्क्रिप्ट किसी भी स्थापना पर काम करती हैं। एक और संभव कुटिया वे हंसे:
#!/bin/bash
उनके बीच का अंतर बहुत अजीब हो सकता है, और मैं इसे समझाऊंगा। इस आखिरी में मुझे लगता है कि हमारे सिस्टम में बैश शेल / बिन / बैश पते पर है। हालांकि, जहां मैंने स्क्रिप्ट में प्रपोज किया था मुझे लगता है मुझे नहीं पता कि यह कहां है बैश दुभाषिया। मैं उस पते को प्रदान करने के लिए उसके लिए प्रणाली पूछता हूं.
तीसरी पंक्ति: जैसा कि आप देख सकते हैं, दूसरी पंक्ति एक है। पात्रों को कोसने के लिए «$#« उन मापदंडों की संख्या समाहित करें जिन्हें हम कमांड लाइन से पास कर रहे हैं। इसलिए, »अगर [$ #-टाइप 1] ;; शाब्दिक अर्थ है "यदि मापदंडों की संख्या 1 से कम है".
चौथी पंक्ति: फिर (अंग्रेजी से शाब्दिक अनुवाद: तब), यहाँ यह इंगित किया गया है कि आगे क्या आता है जब हालत मूल्यांकन किया जाएगा if सच हो: दूसरे शब्दों में, मापदंडों की संख्या 1 से कम है, अर्थात शून्य है।
पांचवीं पंक्ति: यदि हम बिना किसी पैरामीटर के अपनी स्क्रिप्ट निष्पादित करते हैं, तो हम टर्मिनल में दिखाएंगे «आपको एक पैरामीटर पास करने की आवश्यकता है»।
छठी पंक्ति: इंगित करता है कि निम्न प्रकार निष्पादित किया जाएगा जब हमने जो शर्त घोषित की है वह सच नहीं है.
सातवीं पंक्ति: से कमांड चलाएं «कहां है« उस सामग्री के साथ जिसे हमने पास किया है पहला पैरामीटर.
आठवीं पंक्ति: «के साथfi»इंगित करता है कि ब्लॉक समाप्त होता है if.
हमारे स्क्रिप्ट का परीक्षण
यह महत्वपूर्ण है लिखने की अनुमति जोड़ें स्क्रिप्ट के लिए:
$ chmod -x ~/.bin/donde
इसके बिना, "अनुमति अस्वीकृत" त्रुटि दिखाई देगी।। उसके बाद, हम अपनी स्क्रिप्ट चला सकते हैं।
$ donde php
यह हमें php बायनेरिज़, उनके स्रोत फ़ाइलों और मैन पेजों का स्थान दिखाना चाहिए। ऐसा कुछ:
php: /usr/bin/php7.0 /usr/bin/php /usr/lib/php /etc/php /usr/share/php7.0-readline /usr/share/php7.0-json /usr/share/php7.0-opcache /usr/share/php7.0-common /usr/share/php /usr/share/man/man1/php.1.gz
फिर से भरना
- हम सक्षम करते हैं निर्देशिका ".bin" हमारे लिपियों घर.
- हम देते हैं इस निर्देशिका को अपने कमांड खोजों में शामिल करने के लिए लिनक्स को सूचना.
- हम अपनी स्क्रिप्ट बनाते हैं।
- के बीच अंतर विभिन्न कुटिया.
- का उपयोग $ # के साथ पारित मापदंडों की संख्या.
- का उपयोग पहला पैरामीटर साथ $1.
मैं आशा करता हूं और चाहता हूं कि यह स्क्रिप्ट आपके लिए उपयोगी हो।
बहुत अच्छा और अच्छी तरह से समझाया गया है, लेकिन एक पैरामीटर क्या संदर्भित करता है?
धन्यवाद मिगुएल!
मैं पैरामीटर द्वारा सभी पूरक जानकारी को समझता हूं जो एक कार्यक्रम, फ़ंक्शन या सिस्टम को आपूर्ति की जाती है। जैसा कि यह बोझिल हो सकता है, मैं आपको कुछ उदाहरणों के साथ जवाब देता हूं।
Linux कमांड में फाइल a.txt को फाइल b.txt पर कॉपी करने के लिए, हम निम्नलिखित लिखेंगे:
$ c। axt। bxt
यहाँ cp प्रोग्राम को दो पैरामीटर मिलते हैं जो दो फाइलों के नाम हैं, पहला (मौजूद होना चाहिए) a.txt और दूसरा b.txt।
एक और उदाहरण: यदि आप कंसोल से कमांड के साथ प्रिंट करने के लिए भेजते हैं
$ lp file.pdf
इस स्थिति में "file.pdf" lp प्रोग्राम का एक पैरामीटर है।
मुझे आशा है कि मैंने आपके संदेह को संतुष्ट किया है।
सादर
मेरी टिप्पणियां बाहर नहीं आती हैं, यह सम्मान की कमी है, मैं इस मंच पर दोबारा नहीं लौटता।
मुझे नहीं पता कि क्या हुआ है, किसी भी मामले में यह प्रकाशित किया गया है।
नमस्ते.