میں باش سکرپٹ میں دلیل کیسے پاس کروں؟

How Do I Pass Argument Bash Script



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

ڈیفالٹ متغیرات کا استعمال کرتے ہوئے دلائل پاس کرنا:

ٹچ کمانڈ کا استعمال کرتے ہوئے کسی بھی نام کے ساتھ ایک نئی فائل بنائیں ، مثال کے طور پر ، file.sh.







$چھونافائل کا نام



اس نئی بنائی گئی فائل کو کھولیں اور اس میں کچھ بش سکرپٹ شامل کریں۔ میں نے کچھ ڈیفالٹ متغیرات شامل کیے ہیں ، جیسے اس کے نتیجے میں $ 1 ، $ 2 اور $ 3۔ جو بھی دلائل ٹرمینل سے گزریں گے وہ بیان کردہ متغیرات میں محفوظ کیے جائیں گے۔







آپ کو اس فائل کو ./ کمانڈ کا استعمال کرتے ہوئے چلانا ہوگا جس کے بعد کچھ دلائل ہوں گے۔ جیسا کہ آپ تصویر میں دیکھ سکتے ہیں کہ جب میں نے دلائل پاس کیے تو ایک خرابی پیش آتی ہے: اجازت نامنظور۔ اس کی وجہ یہ ہے کہ اس فائل میں عملدرآمد کے حقوق نہیں ہیں۔

$./فائل نام دلیل 1 دلیل 2 دلیل۔

لہذا اس فائل کو عملدرآمد کے حقوق دینے کے لیے ، اس کے لیے sudo chmod کمانڈ استعمال کریں۔



$سودو chmod+x فائل کا نام۔

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

بطور دلیل شیل اسکرپٹ کا نام پاس کرنا:

اب ، وہی پرانی فائل file.sh استعمال کرتے ہوئے اس کے ڈیفالٹ متغیرات میں تھوڑی تبدیلی کے ساتھ۔ جیسا کہ دکھایا گیا ہے آپ کو اسکرپٹ میں متغیر $ 0 شامل کرنا ہوگا۔

اسی ./ شیل اسکرپٹ کمانڈ کو چلانے پر ، آپ کے شیل اسکرپٹ کا نام ، جیسے ./filename $ 0 متغیر میں بطور دلیل محفوظ ہوگا۔

دلائل کو ایک صف کے طور پر متغیر میں منتقل کرنا:

اسی فائل file.sh سے شروع کرتے ہوئے ، آپ کو پرانے اسکرپٹ میں کچھ اضافی لائنیں شامل کرنا ہوں گی۔ array نامی متغیر کا اعلان کریں۔ ایک ڈیفالٹ متغیر [ای میل محفوظ] شامل کریں جو صارف کے داخل کردہ دلائل کو ایک صف کے طور پر محفوظ کرے گا۔ ان دلائل کو متغیر صف میں تجزیہ کیا جائے گا۔ آخری لائن انڈیکس نمبر کے مطابق ترتیب دی گئی متغیر صف کے تمام دلائل دکھائے گی۔

./ شیل اسکرپٹ پر عمل کریں۔ آپ دیکھیں گے کہ یہ [ای میل محفوظ] میں صف کے طور پر محفوظ کردہ دلائل یا اقدار کو متغیر صف میں تجزیہ کرے گا لیکن دوسرے ایکو بیان میں شیل اسکرپٹ کا نام نہیں۔ آپ کو درج ذیل آؤٹ پٹ ملے گی۔

$./فائل نام دلیل 1 دلیل 2 دلیل۔

ایک ہی سکرپٹ کے ساتھ ایک ہی فائل استعمال کریں۔ تصویر میں واضح طور پر آخری لائن سے $ {array [3]} کو ہٹا دیں۔

./ کمانڈ پر عمل کرنے کے بعد ، آپ کو اسی طرح کی پیداوار نظر آئے گی جیسا کہ آپ نے اوپر دی گئی مثال میں بغیر کسی تبدیلی کے حاصل کیا۔

آپ ایک ہی لفظ کے ساتھ بش سکرپٹ کی آخری لائن کو تبدیل کرکے بھی وہی نتیجہ حاصل کرسکتے ہیں۔ آپ کو صرف ایکو بیان میں [email protected] شامل کرنا ہوگا ، اور یہ اس متغیر صف میں موجود دلائل کو ظاہر کرے گا۔

تو ./ کمانڈ کو دوبارہ چلانا ، آپ کو وہی نتائج ملیں گے۔

پاس کیے گئے دلائل کی کل تعداد چیک کریں:

اس کے برعکس ، اگر آپ صارف کی طرف سے منظور شدہ دلائل کی کل تعداد جاننا چاہتے ہیں تو آپ یہ بھی کر سکتے ہیں۔ اس مقصد کے لیے ، آپ کو صرف [email protected] کو $# echo میں بدلنا ہوگا۔

ایک بار پھر ./ کمانڈ پر عمل درآمد کرتے ہوئے ، آپ اب اسکرپٹ کو منتقل ہونے والے دلائل کی پوری شکل دیکھیں گے۔ ہمارے معاملے میں ، 3 دلائل قدر کے طور پر منظور کیے جاتے ہیں۔

دلائل کے لائن آؤٹ پٹ کے ذریعے لائن بنائیں:

ہوم ڈائرکٹری میں ایک نئی فائل test.sh بنائیں۔ جیسا کہ دکھایا گیا ہے بش سکرپٹ شامل کریں۔

اب مختلف دلائل کے ساتھ وہی پرانی کمانڈ چلائیں۔ سب سے پہلے ، آپ کو خرابی نظر آئے گی: اجازت نامنظور۔

اس فائل کو sudo مراعات دینے کے لیے آپ کو chmod کمانڈ پر عمل کرنا ہوگا۔ اس کے بعد ، ./ شیل اسکرپٹ کمانڈ دوبارہ چلائیں۔ اور آپ کو لکیر کے حساب سے دلائل کی ترتیب سے پیداوار ملے گی۔

دلیل انڈیکس نمبر کے ذریعے متغیر کو محدود کریں:

اگر آپ متغیر کو اس کے انڈیکس نمبر کا استعمال کرتے ہوئے محدود کرنا چاہتے ہیں تو آپ اسے بہت آسانی سے کر سکتے ہیں۔ $ نشان کے بعد گھوبگھرالی بریکٹ شامل کریں اور دلیل انڈیکس نمبر شامل کریں جسے آپ دوسرے دلائل سے پہلے ظاہر کرنا چاہتے ہیں۔

اگر صارفین کی طرف سے فراہم کردہ دلائل حد متغیر میں فراہم کردہ انڈیکس نمبر سے کم ہیں ، تو آپ کو ایک خالی دلیل کی قیمت ملے گی۔ مثال کے طور پر ، میں نے 4 دلائل فراہم کیے ہیں ، لیکن میں نے 05 دلیل کی قیمت ظاہر کی ہے۔ اس صورت حال میں ، متغیر خالی دکھایا جائے گا کیونکہ پانچویں دلیل منظور نہیں ہوئی ہے۔

لیکن جب آپ کمانڈ میں برابر یا اس سے زیادہ تعداد میں دلائل پاس کرتے ہیں ، تو آپ کو نتائج میں دکھائی گئی قدر ملے گی جیسا کہ دکھایا گیا ہے۔

مخصوص قیمت کے دلائل کی جانچ پڑتال:

Check.sh کے نام سے اپنی ہوم ڈائریکٹری میں ایک نئی فائل بنائیں۔ جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے وہی بش اسکرپٹ شامل کریں۔ اس اسکرپٹ میں ، ہمارے پاس ایک متغیر var ہے جو صارف کی طرف سے منظور شدہ دلیل کی قیمت کو محفوظ کرتا ہے۔ پھر ہمارے پاس ایک if بیان ہے ، جو دلیل کی قیمت کے مماثل ہونے کی جانچ کرے گا۔ اگر دلیل کی قیمت قوسین میں فراہم کردہ قیمت کے ساتھ مماثل ہے ، تو پہلا ایکو بیان عمل میں لایا جائے گا۔ اگر قیمت مماثل نہیں ہے تو ، دوسرا ایکو بیان عمل میں لایا جائے گا۔

جب ہم شیل اسکرپٹ کمانڈ چلاتے ہیں ، تو یہ ایک خرابی پیدا کرے گا۔ chmod کمانڈ کا استعمال کرتے ہوئے ، ہم اس غلطی کو درست کر سکتے ہیں۔

اس کے بعد ، مخصوص فائل کے لیے شیل اسکرپٹ کو کچھ دلیل کی قیمت کے ساتھ چلائیں۔ ہمارے معاملے میں ، ہم نے اقصی کو بطور دلیل قدر فراہم کیا ہے ، جو کہ قوسین میں دکھائی گئی قدر کے برابر ہے۔ تو bash اسکرپٹ پہلے ایکو اسٹیٹمنٹ پر عمل کرے گا جیسا کہ دکھایا گیا ہے۔

دوسری طرف ، اگر آپ شیل اسکرپٹ میں مختلف دلیل کی اقدار فراہم کرتے ہیں تو ، یہ دوسرا بازگشت بیان ظاہر کرے گا۔ یہاں ، میں نے رمشا کو بطور دلیل قدر شامل کیا ہے ، جو if بیان میں فراہم کردہ قدر سے مختلف ہے۔ تو bash اسکرپٹ دوسرے ایکو اسٹیٹمنٹ پر عمل کرے گا۔

نتیجہ:

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