باش سکرپٹ میں کمانڈ لائن دلائل کو کیسے سنبھالیں۔

How Handle Command Line Arguments Bash Script



بہت سے معاملات میں ، اسکرپٹ کو ان پٹ آپشنز فراہم کرنے کے لیے بش سکرپٹس کو دلیل کی اقدار درکار ہوتی ہیں۔ آپ بش اسکرپٹ میں کمانڈ لائن دلائل کو دو طریقوں سے سنبھال سکتے ہیں۔ ایک استعمال کرکے ہے۔ دلیل متغیر اور دوسرا استعمال کرکے ہے۔ getopts فنکشن آپ کمانڈ لائن دلائل کو کس طرح سنبھال سکتے ہیں اس سبق میں دکھایا گیا ہے۔

دلیل متغیرات کا استعمال:

دلیل متغیر $ 0 سے شروع ہوتا ہے۔ مرکزی اسکرپٹ فائل کا نام $ 0 میں محفوظ ہے جو کمانڈ لائن دلائل سے دلیل کی اقدار حاصل کرتا ہے۔ اگر کمانڈ لائن میں دو دلیلیں منظور کی جاتی ہیں تو دلیل کی قیمتیں $ 1 اور $ 2 متغیرات میں ترتیب سے وصول کی جائیں گی۔







مثال -1: تین عددی اقدار کو بطور دلائل بھیجنا۔

ایک bash فائل بنائیں اور درج ذیل کوڈ شامل کریں۔ اسکرپٹ تین دلیل کی اقدار وصول کرے گا اور $ 1 ، $ 2 اور $ 3 میں اسٹور کرے گا۔ یہ دلائل کی کل تعداد شمار کرے گا ، دلیل کی اقدار کو لوپ کے ساتھ اور بغیر لوپ کے چھاپے گا۔ آخر میں ، تمام دلیل اقدار کا مجموعہ پرنٹ کریں۔



#!/bin/bash

# دلائل کی کل تعداد گننا۔
باہر پھینک دیا 'دلائل کی کل تعداد: $#'

# دلیل کی اقدار کو انفرادی طور پر پڑھنا۔
باہر پھینک دیا پہلی دلیل کی قیمت: $ 1
باہر پھینک دیا دوسری دلیل کی قیمت: $ 2
باہر پھینک دیا 'تیسری دلیل کی قیمت: $ 3'

# لوپ کا استعمال کرتے ہوئے دلیل کی قدریں پڑھنا۔
کے لیےارگوالمیں '[ای میل محفوظ]'
کیا
باہر پھینک دیا '$ argval'
ہو گیا

# دلیل کی اقدار کو شامل کرنا۔
رقم= $۔(($ 1+$ 2۔+$ 3۔))

# نتیجہ پرنٹ کریں۔
باہر پھینک دیا -اور 'nرقم کا نتیجہ =$ رقم'

بش فائل کو تین عددی دلیل اقدار کے ساتھ چلائیں۔



$لشکرcmdline1.shپچاس 35۔ پندرہ





مثال -2: فائل نام کو دلیل کے طور پر لینا۔

bash فائل بنائیں اور کسی بھی فائل کے حروف کی کل تعداد شمار کرنے کے لیے درج ذیل کوڈ شامل کریں۔ یہاں ، فائل کا نام کمانڈ لائن دلیل کے طور پر منظور کیا جائے گا۔

#!/bin/bash
فائل کا نام=$ 1
کل چار='ڈبلیو سی -سی $ filename'
باہر پھینک دیا حروف کی کل تعداد ہے۔$ totalchar'

باش اسکرپٹ کو فائل نام کے ساتھ بطور واحد دلیل ویلیو چلائیں اور اس فائل کے حروف کی کل تعداد چیک کرنے کے لیے ایک اور کمانڈ چلائیں۔ یہاں ، employee.txt فائل کو دلیل کی قیمت کے طور پر استعمال کیا جاتا ہے۔ employee.txt فائل کے حروف کی کل تعداد 204 ہے۔



$لشکرcmdline2.sh ملازم. txt۔
$ڈبلیو سی -سیملازم. txt

getopts فنکشن کا استعمال:

اگر آپ ڈیٹا بیس یا کسی بھی فائل میں ڈیٹا سٹور کرنا چاہتے ہیں یا کمانڈ لائن آرگمنٹس ویلیوز کی بنیاد پر مخصوص فارمیٹ پر رپورٹ بنانا چاہتے ہیں۔ getopts فنکشن کام کرنے کا بہترین آپشن ہے۔ یہ ایک بلٹ ان لینکس فنکشن ہے۔ لہذا ، آپ کمانڈ لائن سے فارمیٹڈ ڈیٹا پڑھنے کے لیے اس فنکشن کو اپنی اسکرپٹ میں آسانی سے استعمال کر سکتے ہیں۔

مثال -1: getopts فنکشن کے ذریعے دلائل پڑھنا۔

ایک bash فائل بنائیں اور اس کے استعمال کو سمجھنے کے لیے درج ذیل اسکرپٹ کو شامل کریں۔ getopts فنکشن کمانڈ لائن دلیل کے اختیارات اور دلیل کی اقدار کو پڑھنے کے لیے 'لوپٹس' فنکشن کو لوپ کے ساتھ استعمال کیا جاتا ہے۔ یہاں ، 4 اختیارات استعمال کیے گئے ہیں جو ہیں۔ 'میں' ، 'این' ، 'ایم' اور 'اور' . کیس اسٹیٹمنٹ کا استعمال خاص آپشن سے ملنے اور دلیل کی ویلیو کو متغیر میں محفوظ کرنے کے لیے کیا جاتا ہے۔ آخر میں ، متغیر کی اقدار پرنٹ کریں۔

#!/bin/bash
جبکہ getopts ':مجھ میں:'ناراض؛کیا
معاملہ $ arg میں
میں) آئی ڈی=$ OPTARG۔؛؛
n) نام۔=$ OPTARG۔؛؛
m) مینوفیکچرنگ_تاریخ=$ OPTARG۔؛؛
اور) ختم ہونے کی تاریخ=$ OPTARG۔؛؛
ایساک
ہو گیا
باہر پھینک دیا -اور 'n$ ID۔ $ نام۔ $ مینوفیکچرنگ_تاریخ $ Expire_date۔n'

درج ذیل اختیارات اور دلیل کی اقدار کے ساتھ فائل چلائیں۔ یہاں ، p100 -i آپشن کی قدر ہے ، 'ہاٹ کیک' -n آپشن کی ویلیو ہے ، '01 -01-2018 --m آپشن کی ویلیو ہے اور '06 -01-2018 کی ویلیو ہے - ای آپشن

$لشکرcmdline3.sh-میںp001 'گرم کیک' '01 -01-2018 ' -اور '06 -01-2018 '

جب آپ کو سکرپٹ میں سادہ اقدار بھیجنے کی ضرورت ہو تو پھر دلیل کے متغیرات کا استعمال کرنا بہتر ہے۔ لیکن اگر آپ فارمیٹ شدہ طریقے سے ڈیٹا بھیجنا چاہتے ہیں تو پھر دلیل کی اقدار کو حاصل کرنے کے لیے getopts فنکشن استعمال کرنا بہتر ہے۔ مزید معلومات کے لیے دیکھیں۔ ویڈیو !