باش میں کمانڈ لائن دلائل کو کیسے ہینڈل کریں؟

Bash My Kman Layn Dlayl Kw Kys Yn L Kry



لینکس میں، ہم کمانڈ لائن آرگیومینٹس کو بش اسکرپٹ کے لیے بطور ان پٹ استعمال کرتے ہیں۔ Bash ان کمانڈ لائن آرگیومنٹس کو ترتیب وار لے سکتا ہے اور انہیں بطور آپشن پارس کر سکتا ہے۔ یہ دلائل آپ کو اعمال اور اسکرپٹ کے آؤٹ پٹ کو متحرک طور پر متاثر کرنے کی اجازت دیتے ہیں۔

آپ ان پٹ اور آؤٹ پٹ کو متاثر کرنے کے لیے ان دلائل کو مختلف طریقے سے ترتیب دے سکتے ہیں۔ اسی لیے bash میں کمانڈ لائن آرگس کو ہینڈل کرنا ضروری ہے، لیکن بہت سے نئے صارفین کو یہ سیکھنے کی ضرورت ہے کہ اسے کیسے کرنا ہے۔ لہذا اس گائیڈ میں، ہم bash میں کمانڈ لائن آرگیومینٹس کو ہینڈل کرنے کے مختلف طریقوں کی وضاحت کریں گے۔







باش میں کمانڈ لائن دلائل کو کیسے ہینڈل کریں؟

باش میں کمانڈ لائن آرگس کو ہینڈل کرنے کے مختلف طریقے ہیں تو آئیے مختصر معلومات حاصل کرنے کے لیے ان پر ایک نظر ڈالتے ہیں:



گیٹوپٹ فنکشن



getopt فنکشن آسان ہے کیونکہ یہ bash میں آرگیومینٹس کی وضاحت اور تجزیہ کرنے کے لیے آپشنز اور نحو فراہم کرتا ہے۔ یہ لینکس کا ایک بلٹ ان فنکشن ہے جسے آپ ڈیٹا بیس فائل بناتے وقت استعمال کرسکتے ہیں یا دلائل کی بنیاد پر مخصوص فارمیٹ میں رپورٹ کرسکتے ہیں۔ گیٹوپٹ فنکشن مختصر کمانڈ لائن آرگیومینٹس کو پارس کرنے میں مدد کرتا ہے کیونکہ دلائل کی دو قسمیں ہیں:





  • مختصر دلائل: یہ واحد حرفی دلائل ہیں جس کے بعد ہائفن ہوتا ہے۔ مثال کے طور پر، -a، -l، -h، وغیرہ، واحد دلائل کی چند مثالیں ہیں۔

  • طویل دلائل: یہ کثیر حروف کے دلائل ہیں جس کے بعد ڈبل ہائفن ہوتا ہے۔ طویل دلائل کی مختلف مثالیں ہیں، جیسے -all، -list، -help وغیرہ۔

آئیے ایک مثال لیں جہاں ہم getopt یوٹیلیٹی کا استعمال کرتے ہوئے کمانڈ لائن آرگیومینٹس کو ہینڈل کریں گے۔ ہم نے 'getopt.sh' کے نام سے ایک bash اسکرپٹ بنایا ہے جس میں درج ذیل معلومات ہیں:



!/ بن / bash

جبکہ getopts 'اے، بی، سی، ڈی:' تفصیلات؛ کیا

معاملہ ' $تفصیلات ' میں

اے )

بازگشت 'شہری کا نام ہے۔ $OPTARG ' ;;

بی )

بازگشت 'سٹیزن آئی ڈی ہے۔ $OPTARG ' ;;

سی )

بازگشت ' جائے پیدائش ہے۔ $OPTARG ' ;;

ڈی )

بازگشت 'پیشہ ہے۔ $OPTARG ' ;;

* )

باہر نکلیں 1 ;;

esac

ہو گیا

شفٹ ' $(($OPTING -1) )'



اگر [ ! -کے ساتھ $1 ] ; پھر

بازگشت 'ازدواجی حیثیت $1'

اور

بازگشت 'کوئی اندراج نہیں'

باہر نکلیں 1

ہونا



اگر [ ! -کے ساتھ $2 ] ; پھر

بازگشت 'خاندان کے ارکان $2'

ہونا

اب آئیے ان پٹ میں مطلوبہ دلائل کے ساتھ اسکرپٹ کو عمل میں لاتے ہیں:

جیسا کہ آپ اوپر کی تصویر میں دیکھ سکتے ہیں، ہم اسکرپٹ کو صرف گیٹوپٹ فنکشنز کے ساتھ چلاتے ہیں اور پھر مکمل نتیجہ حاصل کرنے کے لیے عام دلائل شامل کرتے ہیں۔

جھنڈوں کا استعمال

جھنڈے صرف ایک حروف کے سوا کچھ نہیں ہیں جو ہائفنز (-) سے پہلے ہیں۔ جب ہم گیٹوپٹ فنکشن کا استعمال کرتے ہوئے دلائل کو پاس کرتے ہیں، تو ہم جھنڈے استعمال کرتے ہیں۔ -a، -b، -c جھنڈوں کی کچھ مثالیں ہیں۔ مثال کے طور پر، اسکرپٹ میں شہری کا نام، شناخت، جگہ، عمر اور پیشہ درکار ہوتا ہے۔ لہذا، ہم نے جھنڈے j، k، l، m، n، شہری کے نام، شناخت، جگہ، عمر، اور پیشے کو بیک وقت بیان کرنے کے لیے استعمال کیا:

#!/bin/bash

جبکہ getopts j:k:l:m:n: flag_info

کیا

معاملہ ' ${flag_info} ' میں
< ol >
< کہ > جے ) شہری کا نام = ${OPTARG} ؛؛ کہ >
< کہ > ک ) شہری = ${OPTARG} ؛؛ کہ >
< کہ > l ) جگہ = ${OPTARG} ؛؛ کہ >
< کہ > m ) عمر = ${OPTARG} ؛؛ کہ >
< کہ > n ) پیشہ = ${OPTARG} ؛؛ کہ >
ol >
esac

ہو گیا

بازگشت ' درج کردہ تفصیلات یہ ہیں:'

بازگشت 'شہری کا نام: $citizenname ' ;

بازگشت 'شہری ID: $citizenid ' ;

بازگشت 'جگہ: $جگہ ' ;

بازگشت 'عمر: $عمر ' ;

بازگشت 'پیشہ: $پیشہ ' ;

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

. /< سکرپٹ > .ایسیچ -j ڈینی -k 476 -l ٹورنٹو -m 25 -n مصنف

استعمال کرنا [ای میل محفوظ] لوپس کے ساتھ

' [ای میل محفوظ] متغیر تمام ان پٹ آرگیومینٹس کی صف کے علاوہ کچھ نہیں ہے۔ ہم 'کا استعمال کرتے ہوئے کسی بھی تعداد میں ان پٹ پاس کر سکتے ہیں۔ [ای میل محفوظ] متغیر آپ دلائل کے ذریعے تکرار کرنے کے لیے اس متغیر کو لوپ کے طور پر استعمال کر سکتے ہیں۔ ' [ای میل محفوظ] تب متغیر کام آتا ہے۔ آپ ان پٹ کا سائز نہیں جانتے اور پوزیشنی دلائل نہیں لے سکتے۔ لہذا، آپ استعمال کر سکتے ہیں ' [ای میل محفوظ] گیٹوپٹ فنکشن کی بار بار وضاحت کرنے کے بجائے۔ لوپس اور استعمال کرنے کی ایک مثال یہ ہے۔ [ای میل محفوظ] اسکرپٹ میں ایک ساتھ:

#!/bin/bash

ایک پر = ( $ @ ' )



اگر [ $# -جی ٹی 1 ]

پھر



شامل کریں =$ ( ( ${num[0]} + ${num[1]} ) )

بازگشت 'تمام نمبروں کا اضافہ ہے: $add '



گھٹاؤ =$ ( ( ${num[0]} - ${num[1]} - ${num[2]} ) )

بازگشت 'نمبروں کا گھٹاؤ یہ ہے: $subtraction '



ضرب =$ ( ( ${num[0]} * ${num[1]} * ${num[2]} ) )

بازگشت 'نمبروں کی ضرب یہ ہے: $ ضرب '



ڈویژن 1 =$ ( ( ${num[0]} / ${num[1]} ) )

بازگشت 'تقسیم ${num[0]} اور ${num[1]} ہے: $division1 '



ڈویژن 2 =$ ( ( ${num[1]} / ${num[2]} ) )

بازگشت 'کی تقسیم ${num[1]} اور ${num[2]} ہے: $division2 '



ڈویژن 3 =$ ( ( ${num[0]} / ${num[2]} ) )

بازگشت 'کی تقسیم ${num[0]} اور ${num[2]} ہے: $division2 '



ہونا

مندرجہ بالا اسکرپٹ کمانڈ لائن دلائل کی بنیاد پر مختلف ریاضی کے حساب کتاب کرتا ہے۔ مثال کے طور پر، ہم نے 50، 35، اور 15 کو بطور ان پٹ درج کیا ہے:

پوزیشنی پیرامیٹرز کا استعمال

آپ پوزیشنل پیرامیٹرز تک رسائی حاصل کر سکتے ہیں کیونکہ وہ پہلے $1، پھر $2، وغیرہ تک رسائی حاصل کرتے ہیں۔ مثال کے طور پر، آئیے ایک اسکرپٹ بنائیں جو پہلے دلیل کے طور پر ایک نام اور پھر دوسرے کے طور پر ایک شہر پڑھے۔ تاہم، اگر آپ پہلے شہر سے گزرتے ہیں اور پھر نام، تو یہ نام کو شہر سمجھتا ہے اور اس کے برعکس۔ آئیے اس تصور کو سمجھنے کے لیے درج ذیل اسکرپٹ میں گہرا غوطہ لگائیں:

#!/bin/bash

بازگشت 'یہ درج کردہ تفصیلات ہیں'

بازگشت 'نام $1'

بازگشت 'شہر $2'

ٹرمینل میں اسکرپٹ پر عمل کرنے کے وقت آپ کو نام اور شہر شامل کرنے کی ضرورت ہے:

ختم کرو

یہ وہ سب کچھ ہے جس کے بارے میں آپ کو باش میں کمانڈ لائن آرگومنٹس کو ہینڈل کرنے کے طریقوں کے بارے میں جاننے کی ضرورت ہے۔ ہم نے مختلف طریقوں کی وضاحت کی ہے جنہیں آپ مناسب مثالوں کے ساتھ آزما سکتے ہیں۔ اگر آپ اسکرپٹ میں دلائل شامل کرنا چاہتے ہیں تو مختلف کمانڈز ہیں۔ اس لیے یقینی بنائیں کہ آپ ان کے بارے میں مزید جاننے کے لیے Linuxhint پر جائیں۔