शेल वेरिएबल्स का उपयोग करने की अनुमति कैसे दें - भाग 11


जब हम शेल स्क्रिप्ट लिखते हैं, तो हम आम तौर पर हमारी स्क्रिप्ट्स में अन्य छोटे प्रोग्राम या कमांड जैसे कि Awk ऑपरेशंस को शामिल करते हैं। अवाक के मामले में, हमें शेल से अवाक के संचालन के लिए कुछ मूल्यों को पारित करने के तरीके खोजने होंगे।

यह Awk कमांड के भीतर शेल वेरिएबल्स का उपयोग करके किया जा सकता है, और श्रृंखला के इस भाग में, हम सीखेंगे कि ऑक को शेल वेरिएबल्स का उपयोग कैसे करने की अनुमति है जिसमें वे मान शामिल हो सकते हैं जिन्हें हम Awk कमांड में पास करना चाहते हैं।

शेल वेरिएबल्स का उपयोग करने के लिए संभवतः दो तरीके हैं जो आपको Awk सक्षम कर सकते हैं:

1. शेल कोटिंग का उपयोग करना

आइए एक उदाहरण पर दृष्टिपात करें कि आप वास्तव में एक शेल कमांड में शेल वेरिएबल के मान को बदलने के लिए शेल के उपयोग का उपयोग कैसे कर सकते हैं। इस उदाहरण में, हम फाइल/etc/passwd में उपयोगकर्ता नाम की खोज करना चाहते हैं, उपयोगकर्ता की खाता जानकारी को फ़िल्टर और प्रिंट करना चाहते हैं।

इसलिए, हम निम्नलिखित सामग्री के साथ एक test.sh स्क्रिप्ट लिख सकते हैं:

#!/bin/bash

#read user input
read -p "Please enter username:" username

#search for username in /etc/passwd file and print details on the screen
cat /etc/passwd | awk "/$username/ "' { print $0 }'

इसके बाद, फ़ाइल को सहेजें और बाहर निकलें।

ऊपर दिए गए test.sh स्क्रिप्ट में Awk कमांड की व्याख्या:

cat /etc/passwd | awk "/$username/ "' { print $0 }'

"/ $username /" - शेल कमांड का उपयोग अवल कमांड में शेल वैरिएबल यूजरनेम के स्थान पर किया जाता है। उपयोगकर्ता नाम मान फ़ाइल/etc/passwd में खोजा जाने वाला पैटर्न है।

ध्यान दें कि डबल कोट Awk स्क्रिप्ट के बाहर है, print {प्रिंट $0} '

फिर स्क्रिप्ट को निष्पादन योग्य बनाएं और इसे निम्नानुसार चलाएं:

$ chmod  +x  test.sh
$ ./text.sh 

स्क्रिप्ट चलाने के बाद, आपको एक उपयोगकर्ता नाम दर्ज करने के लिए कहा जाएगा, एक मान्य उपयोगकर्ता नाम टाइप करें और Enter दबाएं। आप नीचे के रूप में/etc/passwd फ़ाइल से उपयोगकर्ता के खाते का विवरण देखेंगे:

2. अवाक की परिवर्तनीय असाइनमेंट का उपयोग करना

यह विधि ऊपर की विधि की तुलना में बहुत सरल और बेहतर है। ऊपर दिए गए उदाहरण को ध्यान में रखते हुए, हम काम पूरा करने के लिए एक सरल कमांड चला सकते हैं। इस पद्धति के तहत, हम एक शेल वैरिएबल को शेल चर असाइन करने के लिए -v विकल्प का उपयोग करते हैं।

सबसे पहले, एक शेल वैरिएबल बनाएं, username और इसे वह नाम निर्दिष्ट करें जिसे हम /etc/passswd फ़ाइल में खोजना चाहते हैं:

username="aaronkilik"

फिर नीचे कमांड टाइप करें और एंटर दबाएं:

# cat /etc/passwd | awk -v name="$username" ' $0 ~ name {print $0}'

उपरोक्त आदेश की व्याख्या:

  1. -v - चर घोषित करने का विकल्प
  2. उपयोगकर्ता नाम - शेल चर है
  3. नाम - अवाक चर
  4. है

अवाक लिपि के अंदर $0 ~ नाम पर एक सावधानी बरतें, $0 ~ नाम {प्रिंट $0} । याद रखें, जब हमने इस श्रृंखला के भाग 4 में अवीक तुलना ऑपरेटरों को कवर किया था, तो तुलनात्मक संचालकों में से एक का मूल्य ~ पैटर्न था, जिसका अर्थ है: मान यदि पैटर्न से मेल खाता है।

आउटपुट ($0) कैट कमांड जिसे Awk के लिए पाइप किया गया है, पैटर्न से मेल खाता है (aaronkilik) जो हम/etc/passwd में खोज रहे हैं, परिणामस्वरूप तुलना संचालन सत्य है। फिर उपयोगकर्ता के खाते की जानकारी वाली लाइन स्क्रीन पर मुद्रित होती है।

निष्कर्ष

हमने Awk फीचर्स के एक महत्वपूर्ण भाग को कवर किया है, जो हमें Awk कमांड के भीतर शेल वेरिएबल्स का उपयोग करने में मदद कर सकता है। कई बार, आप शेल स्क्रिप्ट्स के भीतर छोटे Awk प्रोग्राम या कमांड्स लिखेंगे और इसलिए, आपको ऑक कमांड्स के भीतर शेल वेरिएबल्स का उपयोग करने की स्पष्ट समझ होनी चाहिए।

ऑक सीरीज़ के अगले भाग में, हम ऑक फीचर्स के एक और महत्वपूर्ण सेक्शन में गोता लगाएँगे, वह है फ्लो कंट्रोल स्टेटमेंट्स। इसलिए बने रहें और सीखते रहें और साझा करते रहें।