बैश आपको टेक्स्ट के पूरे स्ट्रिंग्स को सिंगल वेरिएबल्स में मैप करने की अनुमति देता है, इसके उपयोग और स्क्रिप्ट लेखन को सरल करता है। वे कैसे काम करते हैं, और आप उनका उपयोग कैसे कर सकते हैं? आइए जानें।
चर क्या है?
चर याद रखने में आसान नाम हैं जिनमें अलग-अलग अक्षरांकीय मान हो सकते हैं। वे उपयोगी हैं क्योंकि वे एक ही फ़ंक्शन को अलग-अलग मानों पर लागू करने की अनुमति देते हैं, बिना किसी स्क्रिप्ट / कोड के टुकड़े को फिर से लिखे। वे स्क्रिप्ट/कोड के टुकड़े को लिखना भी आसान बनाते हैं, क्योंकि अलग-अलग मूल्यों से निपटने के बजाय, आप उन सभी के लिए एक ही नाम का उपयोग कर सकते हैं।
रीयलटाइम वैरिएबल
बैश चर के उपयोग की अनुमति देता है। आप मक्खी पर चर बना सकते हैं और अपने वर्तमान बैश सत्र के दौरान उनका पुन:उपयोग कर सकते हैं। वे कई अलग-अलग तरीकों से आपके बैश के उपयोग में सहायता कर सकते हैं, और वर्तमान सत्र समाप्त होने के बाद वे चले जाएंगे।
उदाहरण के लिए, मान लें कि आप कई साइटों पर जा रहे हैं। आप शोध कर रहे होंगे या डेटा स्क्रैप कर रहे होंगे। आप निम्न चर बना सकते हैं:
sitea=https://www.maketecheasier.com
उसके बाद, यदि आप फ़ायरफ़ॉक्स के साथ हमारी साइट पर जाना चाहते हैं, तो आप बस टाइप कर सकते हैं:
firefox $sitea
बहुत आसान - और अधिक पठनीय। $sitea
जब तक आप या तो इसकी सामग्री को मैन्युअल रूप से नहीं बदलते या बैश सत्र समाप्त नहीं हो जाता, तब तक वेरिएबल को साइट पर मैप किया जाएगा। और, निश्चित रूप से, आप अधिक चर बना सकते हैं, जैसे siteb
, sitec
, और sited
।
नए चर सेट करते समय, आप अपनी इच्छानुसार किसी भी नाम का उपयोग कर सकते हैं और उनके अंदर किसी भी अल्फ़ान्यूमेरिक स्ट्रिंग को संग्रहीत कर सकते हैं। हालांकि, ध्यान रखें कि वे डिफ़ॉल्ट रूप से केस-संवेदी होते हैं। इस प्रकार, $sitea
$SiteA
. जैसा नहीं होगा . साथ ही, ध्यान दें कि स्ट्रिंग्स को उनके अंदर (रिक्त स्थान सहित) विशेष वर्णों के साथ संग्रहीत करते समय आपको उद्धरण चिह्नों का उपयोग करना चाहिए।
लिपियों में चर
स्क्रिप्ट लिखते समय बैश में चर अधिक उपयोगी होते हैं क्योंकि वे आपको एक ही स्क्रिप्ट लिखने की अनुमति देते हैं, जो तब विभिन्न स्ट्रिंग्स के माध्यम से पुनरावृति कर सकते हैं या डेटा के अनुकूलित टुकड़ों पर कार्य कर सकते हैं। मान लीजिए कि आप एक स्क्रिप्ट लिख रहे हैं जिसे हर कोई अपने कंप्यूटर पर उपयोग कर सकता है, लेकिन हर बार एक व्यक्तिगत अभिवादन प्रदर्शित करेगा। चर के बिना, आपको प्रत्येक उपयोगकर्ता के लिए स्क्रिप्ट का एक अलग संस्करण लिखना होगा। चर के साथ, आप स्क्रिप्ट को वही रखते हैं और केवल उपयोगकर्ता का नाम बदलते हैं।
ऐसी स्क्रिप्ट कुछ इस तरह दिखाई देगी:
#!/bin/bash username=Odysseas echo $username
उपरोक्त उदाहरण बेमानी लग सकता है; हालाँकि, जैसे-जैसे कोड की जटिलता बढ़ती है, चर अपरिहार्य हो जाते हैं। एक स्क्रिप्ट सैकड़ों या हजारों लाइन लंबी हो सकती है और इसमें उपयोगकर्ता का नाम अलग-अलग स्थानों पर हो सकता है। इसे बेहतर ढंग से समझने के लिए, निम्नलिखित कुछ भिन्न स्क्रिप्ट पर विचार करें:
#!/bin/bash username=Linus echo Hello $username. This is a simple script I wrote that will repeat your name - that is, $username - often as an actual example of how to use Bash variables. I hope it will make it easier to understand how to use variables to improve your Bash workflow, $username. In this case, the variable username is mapped to your name. Whenever Bash runs into it, it replaces it with $username.
उपरोक्त स्क्रिप्ट username
. के रूप में परिभाषित नाम का उपयोग करेगी पाठ को पूरा करने के लिए चर। यदि वास्तविक उपयोगकर्ता के नाम का उपयोग कर रहे हैं, तो आपको इसे चार बार टाइप करना होगा। फिर, अगले उपयोगकर्ता के लिए ऐसा ही करें, और अगले के लिए चार बार ऐसा ही करें। शत शत। इसे एक वेरिएबल में असाइन करके, आपको इसे प्रत्येक उपयोगकर्ता के लिए केवल एक बार बदलना होगा, और टेक्स्ट में उपयोगकर्ता के नाम का प्रत्येक उल्लेख अपडेट किया जाएगा।
स्थायी बैश चर और उपनाम
हमने देखा कि आप अस्थायी रूप से चर कैसे सेट कर सकते हैं और कैसे, कुछ और स्थायी के लिए, आप उन्हें अपनी स्क्रिप्ट में शामिल कर सकते हैं। हालांकि, बैश में स्थायी रूप से चर सेट करना संभव नहीं है? जवाब एक बड़ा "हाँ!" है और आपको केवल एक फ़ाइल संपादित करनी होगी:“~/.bashrc”।
अपने पसंदीदा टेक्स्ट एडिटर में “~/.bashrc” फ़ाइल खोलें। चूंकि मुझे नैनो पसंद है, इसलिए मैंने इसके साथ किया:
nano ~/.bashrc
हमारा सुझाव है कि आप एक परीक्षण रन के साथ शुरू करें, केवल एक चर जोड़कर, ताकि आपको पता चल सके कि प्रक्रिया से काम नहीं होने पर कहां देखना है। फ़ाइल के अंत में ले जाएँ और, एक नई पंक्ति में, अपना चर जोड़ें। उदाहरण के लिए, मैंने अपने नाम के लिए एक वैरिएबल सेट किया है:
myname="Odysseas Kourafalos"
अपनी फ़ाइल सहेजें और संपादक से बाहर निकलें। ट्वीक तुरंत लागू नहीं किए जाएंगे। इसे प्रभावी करने के लिए अपने टर्मिनल में निम्नलिखित दर्ज करें:
source ~/.bashrc
अब आप अपने बैश सत्र में नए सेट चर का उपयोग कर सकते हैं:
echo $myname
आप जितने चाहें उतने चर सेट कर सकते हैं और बैश में अपने दैनिक रोमांच को बहुत सरल बना सकते हैं।
उत्पादकता में अतिरिक्त वृद्धि के लिए, यह एक अलग प्रकार के चर स्थापित करने लायक भी है:उपनाम। विशिष्ट चरों के विपरीत, जो डेटा के लिए मैप किए जाते हैं जिन्हें आप कमांड में उपयोग कर सकते हैं, वास्तविक कमांड के बजाय उपनामों का उपयोग किया जाता है।
जैसे आप टेक्स्ट के लंबे स्ट्रिंग्स को होल्ड करने के लिए याद रखने में आसान वेरिएबल का उपयोग कर सकते हैं, वैसे ही आप एलियासेस को जटिल कमांड के आसान विकल्प के रूप में उपयोग कर सकते हैं। आप उनके बारे में यहां और अधिक जानकारी प्राप्त कर सकते हैं, जहां हम संपूर्ण 7zip कम्प्रेशन कमांड को दो-वर्णों के उपनाम में बदल देते हैं।
अंतिम नोट के रूप में, भले ही आपने स्थायी रूप से .bashrc में एक चर सेट किया हो, आप अस्थायी रूप से इसके लिए एक अलग मान फिर से असाइन कर सकते हैं, जैसा कि हमने पहले देखा था। जब तक वर्तमान बैश सत्र समाप्त नहीं होता (लॉग आउट या पुनरारंभ करने के बाद) या आप .bashrc फ़ाइल को फिर से स्रोत करते हैं, तब तक चर नई सामग्री प्रस्तुत करेगा।