Bash میں کمانڈ آؤٹ پٹ کو متغیر کے طور پر کیسے محفوظ کیا جائے؟ پلیٹو بلاکچین ڈیٹا انٹیلی جنس۔ عمودی تلاش۔ عی

Bash میں کمانڈ آؤٹ پٹ کو متغیر کے طور پر کیسے محفوظ کیا جائے؟

تعارف

bash اسکرپٹس میں، کسی کمانڈ کے آؤٹ پٹ کو متغیرات کو تفویض کرنا کمانڈز کے آؤٹ پٹس کو اسٹور کرکے اور بعد میں ان کا استعمال کرکے آسان ہوسکتا ہے۔

اس مختصر گائیڈ میں، ہم اس پر ایک نظر ڈالیں گے کہ آپ کس طرح کمانڈ کے آؤٹ پٹ کو Bash میں متغیر کے طور پر محفوظ کر سکتے ہیں۔

متغیرات کو ترتیب دینے کی بنیادی باتیں

کمانڈ کے آؤٹ پٹ کو متغیر کے طور پر محفوظ کرنا اس کے ذریعے حاصل کیا جاتا ہے۔ کمانڈ متبادل. کمانڈ متبادل ایک ریپر ہے جو a میں کمانڈ کو انجام دیتا ہے۔ subshell ماحول، اور لپیٹے ہوئے کمانڈ کو ماحول کے معیاری آؤٹ پٹ سے بدل دیتا ہے جس میں کمانڈ چلائی گئی تھی۔ اس آؤٹ پٹ کو بعد میں حوالہ دیا جا سکتا ہے، اگر کسی حوالہ متغیر سے منسلک ہو!

کمانڈ کا متبادل بیک ٹِکس یا قوسین کے ساتھ ڈالر کے نشان کے ذریعے حاصل کیا جا سکتا ہے:

`command`

$(command)

اس پر بحث ہے کہ آیا 'حکم' (بیک ٹِکس) یا $(حکم) (ڈالر کے نشان اور قوسین) کو "بہترین عمل" کے طور پر استعمال کیا جانا چاہیے۔ $(command) nesting میں اچھی طرح سے کام کرتا ہے، اور کچھ معاملات میں پڑھنے کی اہلیت کو بہتر بناتا ہے، لیکن آپ آگے بڑھنے والی مثالوں میں یا تو نحو کے ساتھ جا سکتے ہیں۔

یہ کہا جا رہا ہے - باش میں متغیر کو کمانڈ کا آؤٹ پٹ تفویض کرنا اتنا ہی آسان ہے جتنا:

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}"

مذکورہ اسکرپٹ میں، the whoami کمانڈ موجودہ صارف کا صارف نام لوٹاتا ہے۔ دی uname -a سسٹم کی معلومات واپس کرتا ہے، اور date موجودہ وقت اور تاریخ لوٹاتا ہے۔

نوٹ: ہم ایک ہی نیسٹڈ کال میں متعدد کمانڈز کا اضافہ کر کے متغیر اسائنمنٹ کو چین کر سکتے ہیں۔ دی CREATE متغیر کی آؤٹ پٹ پر مشتمل ہے۔ touch کمانڈ، جو بدلے میں ایک فائل بناتا ہے اور فائل نام کو آؤٹ پٹ پر سیٹ کرتا ہے۔ date +"%d%m%Y کمانڈر

بہترین طرز عمل، صنعت کے لیے منظور شدہ معیارات، اور چیٹ شیٹ کے ساتھ Git سیکھنے کے لیے ہمارے ہینڈ آن، عملی گائیڈ کو دیکھیں۔ گوگلنگ گٹ کمانڈز کو روکیں اور اصل میں سیکھ یہ!

آخر میں، ہم ایک شامل کرتے ہیں multiline ایک بیک سلیش شامل کرکے متغیر اسائنمنٹ کا تصور کمانڈ کریں۔ () کے درمیان ls کمانڈ -l کا استعمال کرتے ہوئے صرف ٹیکسٹ فائلوں کو ظاہر کرنے کے لئے پرچم *.txt. بیک سلیش ایک فرار کردار ہے جو شیل کو اگلے کردار کی تشریح نہ کرنے کی اطلاع دیتا ہے۔

میں echo کمانڈ، ہم نے شامل کیا -e خصوصی کردار استعمال کرنے کے لیے جھنڈا، یعنی، n (نئی لائن)، نئی لائن میں آؤٹ پٹ پرنٹ کرنے کے لیے۔

اسکرپٹ پر عمل کرنے کے بعد ہمیں درج ذیل نتیجہ ملتا ہے:

$ ./variable.sh

نتیجہ

اس مختصر گائیڈ میں، ہم نے اس بات پر ایک نظر ڈالی ہے کہ آپ کس طرح کمانڈ کے آؤٹ پٹ کو Bash میں متغیر پر سیٹ کر سکتے ہیں۔ ہم نے نحو کے درمیان فرق پر ایک نظر ڈالی ہے۔ کمانڈ متبادلکی پڑھنے کی اہلیت میں بہتری کو نوٹ کرنا $(command) بیک ٹک پر مبنی متبادل سے زیادہ۔ پھر، ہم نے سادہ اسائنمنٹ اور چینڈ/نیسٹڈ آؤٹ پٹ اسائنمنٹ دونوں کی کئی مثالوں پر ایک نظر ڈالی ہے۔

ٹائم اسٹیمپ:

سے زیادہ Stackabuse