बैश में कमांड आउटपुट को वेरिएबल के रूप में कैसे सेव करें? प्लेटोब्लॉकचेन डेटा इंटेलिजेंस। लंबवत खोज. ऐ.

बैश में कमांड आउटपुट को वैरिएबल के रूप में कैसे सेव करें?

परिचय

बैश स्क्रिप्ट में, कमांड के आउटपुट को वेरिएबल को असाइन करना कमांड के आउटपुट को स्टोर करके और बाद में उनका उपयोग करके आश्वस्त किया जा सकता है।

इस संक्षिप्त मार्गदर्शिका में, हम देखेंगे कि आप कमांड के आउटपुट को बैश में एक चर के रूप में कैसे स्टोर कर सकते हैं।

चर सेट करने की मूल बातें

एक कमांड के आउटपुट को एक चर के रूप में सहेजना किसके माध्यम से प्राप्त किया जाता है कमांड प्रतिस्थापन. कमांड प्रतिस्थापन एक आवरण है जो कमांड को a . में निष्पादित करता है उपकोश पर्यावरण, और रैप्ड कमांड को उस वातावरण के मानक आउटपुट के साथ बदल देता है जिसमें कमांड चलाया गया था। इस आउटपुट को बाद में संदर्भित किया जा सकता है, यदि संदर्भ चर से जुड़ा हो!

बैकटिक्स या कोष्ठक के साथ डॉलर चिह्न के माध्यम से कमांड प्रतिस्थापन प्राप्त किया जा सकता है:

`command`

$(command)

इस बात पर बहस चल रही है कि क्या `आदेश` (बैकटिक्स) या $(कमांड) (डॉलर का चिह्न और कोष्ठक) "सर्वोत्तम अभ्यास" के रूप में उपयोग किया जाना चाहिए। $(command) नेस्टिंग में अच्छी तरह से काम करता है, और कुछ मामलों में पठनीयता में सुधार करता है, लेकिन आप आगे के उदाहरणों में सिंटैक्स के साथ जा सकते हैं।

कहा जा रहा है - बैश में एक चर के लिए एक कमांड का आउटपुट असाइन करना उतना ही आसान है जितना:

VARIABLE=$(command)
echo "${VARIABLE}"

रनिंग ${variable} इस रूप में जाना जाता है पैरामीटर विस्तार, और एक संदर्भ चर से जुड़े मूल्य का मूल्यांकन करने और लाने के लिए उपयोग किया जाता है।

आइए अब आउटपुट रंग बदलने के लिए एक कमांड के लिए एक वेरिएबल सेटअप के सरल उदाहरण पर एक नज़र डालें:

#!/bin/bash
GREEN=$(tput setaf 2)
echo "${GREEN}Please"

ORANGE=$(tput setaf 9)
echo "${ORANGE}Visit"

echo "${GREEN}Paris"

स्निपेट में, हमने इस्तेमाल किया है tput रंगीन टेक्स्ट को प्रिंट करने के लिए कमांड और उन कमांड के दिए गए मान को असाइन किया। setaf अग्रभूमि का रंग बदलता है, और 3 (हरा) और 9 (नारंगी) रंग कोड हैं।

अब हम एक और उदाहरण पर आगे बढ़ेंगे जिसमें विभिन्न कमांड के लिए वेरिएबल सेट करने के लिए कई शर्तें शामिल हैं:

#!/bin/bash
PERSON=$(whoami)
echo -e "Hey ${PERSON}! I am Charlien"

DETAILS=$(uname -a)
echo -e "You're running this script on:n${DETAILS}n"

DATES=$(date)
echo -e "The script is being run on:n${DATES}n"

CREATE=$(touch $(date +"%d%m%Y").txt)
echo -e "A text file logging this run is created.${CREATE}n"

LOCATION=$(ls 
  -l *txt)
echo -e "Saved text file at: ${LOCATION}"

उपरोक्त लिपि में, whoami कमांड वर्तमान उपयोगकर्ता का उपयोगकर्ता नाम देता है। uname -a सिस्टम की जानकारी देता है, और date वर्तमान समय और तारीख लौटाता है।

नोट: हम सिंगल नेस्टेड कॉल में कई कमांड जोड़कर वेरिएबल असाइनमेंट को चेन कर सकते हैं। CREATE चर में का आउटपुट होता है touch कमांड, जो बदले में एक फ़ाइल बनाता है और फ़ाइल नाम को के आउटपुट में सेट करता है date +"%d%m%Y आदेश।

सर्वोत्तम प्रथाओं, उद्योग-स्वीकृत मानकों और शामिल चीट शीट के साथ, Git सीखने के लिए व्यावहारिक मार्गदर्शिका देखें। Googling Git कमांड को रोकें और वास्तव में सीखना यह!

अंत में, हम a add जोड़ते हैं multiline बैकस्लैश जोड़कर कमांड वैरिएबल असाइनमेंट कॉन्सेप्ट () के बीच ls आदेश -l ध्वज का उपयोग करके केवल पाठ फ़ाइलों को प्रदर्शित करने के लिए *.txt. बैकस्लैश एक एस्केप कैरेक्टर है जो शेल को अगले कैरेक्टर की व्याख्या नहीं करने के लिए सूचित करता है।

में echo आदेश, हमने जोड़ा -e विशेष वर्ण का उपयोग करने के लिए ध्वज, अर्थात, n (न्यूलाइन), आउटपुट को नई लाइन में प्रिंट करने के लिए।

स्क्रिप्ट निष्पादित करने के बाद हमें निम्नलिखित परिणाम मिलते हैं:

$ ./variable.sh

निष्कर्ष

इस संक्षिप्त मार्गदर्शिका में, हमने देखा है कि आप कमांड के आउटपुट को बैश में एक चर पर कैसे सेट कर सकते हैं। हमने सिंटैक्स के बीच अंतर पर एक नज़र डाली है कमांड प्रतिस्थापन, की पठनीयता में सुधार को ध्यान में रखते हुए $(command) बैकटिक-आधारित प्रतिस्थापन पर। फिर, हमने साधारण असाइनमेंट और जंजीर/नेस्टेड आउटपुट असाइनमेंट दोनों के कई उदाहरणों पर एक नज़र डाली है।

समय टिकट:

से अधिक स्टैकब्यूज