باش سکرپٹنگ ٹیوٹوریل برائے ابتدائیہ

Bash Scripting Tutorial



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

مشمولات:

  1. تبصرے
  2. ایکو کمانڈ
  3. متغیرات
  4. مشروط بیان۔
  5. لوپس
  6. افعال
  7. اسکرپٹ میں پروگراموں کو کال کرنا۔
  8. مینو بنانا۔
  9. کمانڈ لائن پروسیسنگ۔
  10. ریاضی
  11. سٹرنگ ہیرا پھیری۔
  12. ایک سکرپٹ سے ریٹرن کوڈ واپس کرنا اور دوسرے اسکرپٹ میں پکڑنا۔
  13. فائلوں کو پڑھنا اور لکھنا۔
  14. پائپ

تبصرے

کوڈ کے ساتھ تبصرے شامل کرنا کسی بھی پروگرامنگ زبان کا لازمی حصہ ہے۔ عملدرآمد کے وقت تبصرے کو اسکرپٹ کے ساتھ تجزیہ نہیں کیا جاتا ہے۔ اگر کوڈ پر اچھی طرح سے تبصرہ کیا جائے تو قاری کسی بھی کوڈ کو صحیح طور پر سمجھ سکتا ہے۔ آپ بش اسکرپٹ میں متعدد طریقوں سے تبصرہ شامل کرسکتے ہیں۔ آپ بش سکرپٹ میں سنگل لائن اور ایک سے زیادہ لائنز کے تبصرے کیسے شامل کر سکتے ہیں اس حصے میں دکھایا گیا ہے۔ bash تبصرہ کے استعمال کو جاننے کے لیے درج ذیل اسکرپٹ کے ساتھ ایک bash فائل بنائیں۔ یہاں ، '#' کی علامت ایک لائن کے تبصرے کو شامل کرنے کے لیے استعمال کی جاتی ہے اور ایک اقتباس (') کو': 'کے ساتھ ایک سے زیادہ لائنوں کے تبصروں کو شامل کرنے کے لیے استعمال کیا جاتا ہے۔







bash_comment.sh



#!/bin/bash
#ایک نمبر بطور ان پٹ لیں۔
باہر پھینک دیا 'ایک نمبر درج کریں'
پڑھیںکو
:'
چیک کریں کہ ان پٹ نمبر ہے۔
10 سے کم یا 10 سے زیادہ یا 10 کے برابر۔
'

اگر [[ $ ایک -لٹ 10۔ ]]
پھر
باہر پھینک دیا 'تعداد 10 سے کم ہے'
ایلف [[ $ ایک -جی ٹی 10۔ ]]
پھر
باہر پھینک دیا 'تعداد 10 سے زیادہ ہے'
اور
باہر پھینک دیا 'نمبر 10 کے برابر ہے'
ہو

آؤٹ پٹ:



اسکرپٹ چلائیں۔





$لشکرbash_comment.sh

یہاں ، اسکرپٹ کو ان پٹ ویلیو 3 ، 10 اور 90 کے ساتھ تین بار انجام دیا جاتا ہے۔ درج ذیل آؤٹ پٹ ظاہر ہوگی۔



اگر آپ بش کمنٹنگ کے بارے میں مزید جاننا چاہتے ہیں تو آپ چیک کر سکتے ہیں۔ یہ سبق .

اوپر جائیں۔

ایکو کمانڈ

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

echo_test.sh

#!/bin/bash
#پہلا متن پرنٹ کریں۔
باہر پھینک دیا 'ایک نئی لائن کے ساتھ متن پرنٹ کریں'
#دوسرا متن پرنٹ کریں۔
باہر پھینک دیا 'نئی لائن کے بغیر ٹیکسٹ پرنٹ کریں'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرecho_test.sh

مندرجہ ذیل آؤٹ پٹ مندرجہ بالا کمانڈ پر عمل کرنے کے بعد ظاہر ہوگا۔

بش میں `echo` کمانڈ کے بہت سے دوسرے استعمال ہیں۔ آپ ایکو کمانڈ کے بارے میں مزید جاننے کے لیے اس ٹیوٹوریل کو چیک کر سکتے ہیں۔

اوپر جائیں۔

متغیرات

متغیر اعلان کسی بھی پروگرامنگ زبان کا لازمی حصہ ہے۔ بش متغیرات کو مختلف طریقوں سے قرار دیا جا سکتا ہے۔ جب کوئی قیمت کسی متغیر میں تفویض کی جاتی ہے تو پھر متغیر کے آغاز میں کوئی علامت استعمال نہیں ہوتی۔ متغیر کی قیمت پڑھنے کے وقت متغیر نام کے ساتھ '$' علامت استعمال کی جاتی ہے۔ متغیر ٹرمینل سے استعمال کیا جا سکتا ہے یا کسی بھی بش سکرپٹ میں استعمال کیا جا سکتا ہے۔

مندرجہ ذیل کمانڈ نامی ایک سٹرنگ متغیر کا اعلان کریں گے۔ مسٹر ایک خاص قدر کے ساتھ اور اگلے ٹرمینل میں متغیر کی قیمت پرنٹ کریں۔

$مسٹر='مجھے بش پروگرامنگ پسند ہے'
$باہر پھینک دیا $ mystr

آؤٹ پٹ:

مندرجہ ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں۔ یہاں دو متغیرات کا اعلان کیا گیا ہے۔ یہ ہیں $ ایک اور $ b . اگر ان پٹ ویلیو جس میں محفوظ ہے۔ $ ایک مساوی ہے $ b پھر پیغام ، نمبر برابر ہیں۔ دوسری صورت میں پرنٹ کیا جائے گا۔ نمبر برابر نہیں ہیں۔ پرنٹ کیا جائے گا.

var.sh

#!/bin/bash
باہر پھینک دیا 'ایک نمبر درج کریں'
پڑھیںکو
ب=100۔
اگر [[ $ ایک -ایک $ b ]]
پھر
باہر پھینک دیا 'نمبر برابر ہیں'
اور
باہر پھینک دیا 'نمبر برابر نہیں ہیں'
ہو

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرvar.sh

مندرجہ بالا کمانڈ کو 56 اور 100 کی قیمت کے ساتھ دو بار انجام دیا گیا ہے۔ درج ذیل آؤٹ پٹ ظاہر ہوگی۔

اگر آپ بش متغیرات کے بارے میں مزید جاننا چاہتے ہیں تو آپ چیک کر سکتے ہیں۔ یہ سبق .

اوپر جائیں۔

مشروط بیان۔

ایک اور پروگرامنگ لینگویج کی طرح ، آپ bash میں مشروط بیان استعمال کر سکتے ہیں۔ ‘‘ اگر-پھر-اور۔ 'اور' معاملہ بیانات بنیادی طور پر کسی بھی پروگرامنگ زبان میں کنڈیشن اسٹیٹمنٹ کو نافذ کرنے کے لیے استعمال ہوتے ہیں۔ استعمال کرکے مشروط بیان کا استعمال۔ 'اگر' بیان اس سبق کے اس حصے میں دکھایا گیا ہے۔ مندرجہ ذیل اسکرپٹ کے ساتھ بش فائل بنائیں جہاں مشروط بیان استعمال کیا جاتا ہے۔ یہاں ، صارف سے دو اقدار کو بطور ان پٹ لیا جائے گا اور متغیرات میں محفوظ کیا جائے گا ، $ کوڈ۔ ، اور $ عمر . 'اگر' بیان کی قیمت چیک کرنے کے لیے استعمال کیا جاتا ہے۔ $ عمر سے زیادہ یا اس کے برابر ہے۔ 18۔ اور کی قیمت $ کوڈ۔ ہے 1100۔ . اگر دونوں شرائط درست ہیں تو پیغام ، آپ فلم دیکھنے کے اہل ہیں۔ دوسری صورت میں پرنٹ کیا جائے گا۔ آپ فلم دیکھنے کے اہل نہیں ہیں۔ پرنٹ کیا جائے گا.

cond.sh

#!/bin/bash

باہر پھینک دیا 'اپنا کوڈ درج کریں'
پڑھیںکوڈ
باہر پھینک دیا 'اپنی عمر درج کریں'
پڑھیںعمر

اگر [[ $ عمر -دینا 18۔ && $ کوڈ۔ -ایک '1100' ]]
پھر
باہر پھینک دیا 'آپ فلم دیکھنے کے اہل ہیں'
اور
باہر پھینک دیا 'آپ فلم دیکھنے کے اہل نہیں'
ہو

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرcond.sh

مختلف ان پٹ ویلیوز لینے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ 1100 کوڈ کے طور پر دیا گیا ہے اور 5 کو پہلی پھانسی کے لیے عمر کے طور پر دیا گیا ہے اور اگر ان اقدار کے لیے شرط غلط واپس آتی ہے۔ 1100 ایک کوڈ کے طور پر دیا گیا ہے اور 45 کو دوسری پھانسی کے لیے عمر کے طور پر دیا گیا ہے جو کہ شرط کے لیے درست ہے۔

اگر آپ بش مشروط بیان کے بارے میں مزید جاننا چاہتے ہیں تو آپ اس ٹیوٹوریل کو چیک کر سکتے ہیں۔

اوپر جائیں۔

لوپس

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

لوپ کے لیے استعمال کرنا۔

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

for.sh

#لوپ کے ہر تکرار میں ہفتے کے دن کا نام پڑھیں۔
کے لیےدنمیںسوموار منگل بدھ جمعرات جمعہ ہفتہ اتوار
کیا

#چیک کریں ہفتے کے دن کا نام پیر یا جمعرات ہے۔
اگر [[ $ دن=='پیر' || $ دن=='جمعرات' ]]
پھر
باہر پھینک دیا 'ملاقات جاری ہے$ دنصبح 9:30 بجے

#چیک کریں ہفتے کے دن کا نام منگل یا بدھ یا جمعہ ہے۔
ایلف [[ $ دن=='منگل' || $ دن=='بدھ' || $ دن=='جمعہ' ]]
پھر
باہر پھینک دیا 'تربیت جاری ہے$ دنصبح 11:00 بجے
اور

#دوسرے دنوں کے لیے 'چھٹی' پرنٹ کریں۔
باہر پھینک دیا '$ دنچھٹی ہے '
ہو
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرfor.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

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

جبکہ لوپ کا استعمال کرتے ہوئے۔

مندرجہ ذیل اسکرپٹ کے ساتھ بش فائل بنائیں جہاں `۔ جبکہ ` لوپ تکرار کے لیے استعمال ہوتا ہے۔ یہ اسکرپٹ ان نمبروں کو 1 سے 20 تک چھاپے گا جو کہ 5 سے برابر اور تقسیم ہیں۔ $ کاؤنٹر متغیر کا استعمال لوپ کے تکرار کو کنٹرول کرنے کے لیے کیا جاتا ہے اور اس تغیر کی قدر ہر تکرار میں 1 سے بڑھ جاتی ہے۔ کب 'اگر' حالت درست ہو جائے گی پھر اس کی قیمت چھاپے گی۔ $ کاؤنٹر .

#!/bin/bash

#پیغام پرنٹ کریں۔
باہر پھینک دیا 'ان نمبروں کو پرنٹ کریں جو 5 سے برابر اور تقسیم ہیں'

#کاؤنٹر شروع کریں۔
کاؤنٹر=

#لوپ کی تکرار کریں جب تک $ کاؤنٹر ویلیو 20 سے کم یا اس کے برابر نہ ہو۔
جبکہ [ $ کاؤنٹر - بیس ]
کیا

#چیک کریں $ کاؤنٹر 2 اور 5 سے تقسیم ہے۔
اگر [[ $ کاؤنٹر٪-ایک && $ کاؤنٹر٪-ایک ]]
پھر
#نئی لائن کے بغیر $ کاؤنٹر پرنٹ کریں۔
باہر پھینک دیا '$ کاؤنٹر'
ہو

#اضافہ 1 کاؤنٹر
((کاؤنٹر ++))
ہو گیا
باہر پھینک دیا 'ہو گیا'

آؤٹ پٹ:

$لشکرwhile.sh

1 سے 20 کے اندر صرف نمبر ہیں جو 5 سے برابر اور تقسیم ہیں۔

اگر آپ جاننا چاہتے ہیں کہ bash کا زیادہ استعمال کیا جاتا ہے۔ جبکہ ' لوپ پھر آپ چیک کر سکتے ہیں۔ یہ سبق .

لوپ تک استعمال کرنا۔

مندرجہ ذیل اسکرپٹ کے ساتھ بش فائل بنائیں جہاں `۔ تک ' لوپ تکرار کے لیے استعمال ہوتا ہے۔ یہ اسکرپٹ 0 سے 20 تک تمام عجیب نمبر پرنٹ کرے گا۔ $ n اس سکرپٹ میں متغیر استعمال کیا جاتا ہے تاکہ لوپ کو دہرایا جا سکے۔

sh

#!/bin/bash

#متغیر کو شروع کریں ، این۔
n=بیس

#لوپ کو اس وقت تک دہرائیں جب تک $ n کی قدر 0 سے زیادہ نہ ہو۔
تک [ $ n -لٹ ]
کیا

#چیک کریں n کی قدر عجیب ہے۔
اگر [[ $ n٪-جی ٹی ]]
پھر
باہر پھینک دیا $ n
ہو

#1 سے ن کی قدر میں اضافہ کریں۔
((n=$ n-))
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsh

اسکرپٹ 20 سے 1 تک تمام یکساں نمبر پرنٹ کرے گا۔

اوپر جائیں۔

افعال

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

bash فائل کو مندرجہ ذیل اسکرپٹ کے ساتھ بنائیں تاکہ معلوم ہو سکے کہ افعال کو کس طرح اعلان کیا جا سکتا ہے اور بش اسکرپٹ میں بلایا جا سکتا ہے۔ اسکرپٹ میں تین افعال کا اعلان کیا گیا ہے۔ پہلے فنکشن کو ایک سادہ پیغام پرنٹ کرنے کا اعلان کیا گیا ہے ، شروع کرنے والوں کے لیے باش پروگرامنگ۔ . دوسرے فنکشن کو متغیر میں سٹرنگ ویلیو تفویض کرنے کا اعلان کیا گیا ہے ، $ return_str جو چھاپے گا ، لینکس ہنٹ کے ساتھ بش پروگرامنگ سیکھیں۔ فنکشن کال کرنے کے بعد تیسرے فنکشن کو ایک دلیل کی قدر کو دائرے کے رداس کے طور پر پڑھنے کا اعلان کیا گیا ہے جو فنکشن کو کال کرنے کے وقت فراہم کیا جائے گا۔ یہاں ، مقامی دلیل کی قیمت کو پڑھنے کے لیے استعمال کیا جاتا ہے۔ یہ فنکشن فارمولے کا استعمال کرکے دائرے کے رقبے کا رداس ویلیو کی بنیاد پر حساب کرے گا ، r اور حساب شدہ رقبے کی قیمت پرنٹ کریں۔

func.sh

#!/bin/bash

#ایک سادہ فنکشن کا اعلان کریں۔
فنکشنپرنٹ_میسج()
{
باہر پھینک دیا 'شروع کرنے والوں کے لیے باش پروگرامنگ'
}

#سٹرنگ ویلیو واپس کرنے کے لیے ایک فنکشن کا اعلان کریں۔
فنکشنret_strdata()
{
#سٹرنگ ویلیو کے ساتھ متغیر کو شروع کریں۔
return_str='لینکس ہنٹ کے ساتھ بش پروگرامنگ سیکھیں'
}

#دلیل کی قیمت پڑھنے کے لیے ایک فنکشن کا اعلان کریں۔
فنکشنحساب_کیا()

#پاس شدہ دلیل کی قدر پڑھیں۔
مقامی رداس=$ 1۔
رقبہ= $۔(باہر پھینک دیا $ رداس۔*$ رداس۔*3.14۔

#ایک سادہ پیغام پرنٹ کرنے کے لیے فنکشن کو کال کریں۔
پرنٹ_میسج

#اس فنکشن کو کال کریں جو متغیر میں سٹرنگ ویلیو تفویض کرے گا۔
ret_strdata

#متغیر کی قیمت پرنٹ کریں۔
باہر پھینک دیا $ return_str

#رداس ویلیو پڑھیں۔
باہر پھینک دیا 'رداس ویلیو درج کریں'
پڑھیںکام

#رداس ویلیو کے ساتھ فنکشن کو کال کریں۔
حساب_کیا$ rad

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرfunc.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ پہلی دو لائنیں افعال کو کال کرکے پرنٹ کریں گی ، پرنٹ_میسج () اور ret_strdata () . آخری لائن فنکشن کو کال کرکے پرنٹ کرے گی ، حساب_کیا () لی گئی ان پٹ رداس ویلیو کے ساتھ۔

اگر آپ بش فنکشن سے تار واپس کرنے کے بارے میں جاننا چاہتے ہیں تو آپ کر سکتے ہیں۔ یہ ٹیوٹوریا .

اوپر جائیں۔

اسکرپٹ میں پروگراموں کو کال کرنا۔

آپ کسی بھی بش اسکرپٹ میں دوسرے پروگراموں کو کال کرنے کے لیے کئی قسم کے کمانڈز استعمال کر سکتے ہیں ، جیسے۔ ذریعہ ، بش ، ایول ، عملدرآمد ، فرض کریں تین بش فائلیں ، add.sh ، subtract.sh ، multiply.sh اور division.sh اضافہ ، گھٹاؤ ، ضرب ، اور تقسیم کرنے کے لیے بنایا گیا ہے۔ یہاں ، subtract.sh اور division.sh کمانڈ لائن دلائل پڑھیں۔ ان چاروں فائلوں کا سکرپٹ ذیل میں دیا گیا ہے۔

add.sh

#!/bin/bash
کو=60۔
ب=40۔
((نتیجہ=$ ایک+$ b))
باہر پھینک دیا 'کا اضافہ۔$ ایک+$ b=$ نتیجہ۔'

subract.sh

#!/bin/bash
کو=$ 1۔
ب=$ 2۔
((نتیجہ=$ ایک-$ b))
باہر پھینک دیا 'کا گھٹاؤ۔$ ایک-$ b=$ نتیجہ۔'

multiply.sh

#!/bin/bash
((نتیجہ=$ 1۔*$ 2۔))
باہر پھینک دیا $ 1 اور $ 2 کا ضرب ہے۔$ نتیجہ۔'

div.sh

#!/bin/bash
کو=$ 1۔
ب=
((نتیجہ=$ ایک/$ b))
باہر پھینک دیا کی تقسیم۔$ ایککی طرف سے$ bہے$ نتیجہ۔'

ایک bash فائل بنائیں جس کا نام ہے ، callpro.sh مندرجہ ذیل اسکرپٹ کے ساتھ ذریعہ ، bash ، eval اور exec کمانڈز کا استعمال کرتے ہوئے ذکر شدہ فائلوں کو کال کریں۔ مندرجہ ذیل اسکرپٹ کو چلانے سے پہلے آپ کو مندرجہ بالا چار فائلوں کے لیے عملدرآمد کی اجازت مقرر کرنی ہوگی۔ `source` کمانڈ کال کرنے کے لیے استعمال ہوتی ہے۔ add.sh فائل. `bash` کمانڈ subtract.sh فائل کو چلانے کے لیے استعمال کیا جاتا ہے۔ `eval` کمانڈ multiply.sh فائل کو چلانے کے لیے استعمال کیا جاتا ہے۔ `eval` کمانڈ کے لیے کمانڈ لائن دلائل کے طور پر دو ان پٹ ویلیوز بھیجے جاتے ہیں۔ آخری کمانڈ ہے exec کمانڈ جو صرف مطلق راستے کے ساتھ کام کرتی ہے۔ اس کے لیے ، ڈرائیو ڈاٹ فائل کا مکمل نام اسکرپٹ میں دیا گیا ہے۔

callpro.sh

#!/bin/bash
اسکرپٹ 1۔='add.sh'
اسکرپٹ 2۔='subtract.sh'
اسکرپٹ 3۔='multiply.sh'
اسکرپٹ 4۔=/home/fahmida/code/divide.sh '

ذریعہ '$ script1۔'

لشکر $ script2۔ پچاس بیس

باہر پھینک دیا 'ایک کی قیمت درج کریں'
پڑھیںکو
باہر پھینک دیا 'بی کی قیمت درج کریں'
پڑھیںب
eval لشکر $ اسکرپٹ 3۔ $ ایک $ b
عملدرآمد $ script 4۔ 30۔

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرcallpro.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

اوپر جائیں۔

مینو بنانا۔

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

menu.sh

#!/bin/bash

#صارف کے لیے پیغام پرنٹ کریں۔
باہر پھینک دیا 'اپنی پسندیدہ زبان منتخب کریں'

# مینو آئٹم کی فہرست کی وضاحت کریں۔
منتخب کریںزبانمیںج۔# جاوا پی ایچ پی ازگر بش باہر نکلیں۔
کیا
#منتخب کردہ قیمت پرنٹ کریں۔
اگر [[ $ زبان۔=='باہر نکلیں' ]]
پھر
باہر نکلیں
اور
باہر پھینک دیا منتخب زبان ہے۔$ زبان۔'
ہو
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرmenu.sh

مندرجہ ذیل آؤٹ پٹ کے مطابق ، صارف نے پہلی بار پی ایچ پی پرنٹ کرنے کے لیے 3 دبائے اور دوسری بار 6 دبائے جو اسکرپٹ سے ختم ہوا۔

اگر آپ 'سلیکٹ' کے ساتھ بش مینو بنانے کے بارے میں مزید جاننا چاہتے ہیں تو آپ اس ٹیوٹوریل کو دیکھ سکتے ہیں۔

اوپر جائیں۔

کمانڈ لائن پروسیسنگ۔

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

کمانڈ لائن آرگمنٹ ویلیو پڑھنے کے استعمال کو دیکھنے کے لیے درج ذیل اسکرپٹ کے ساتھ ایک باش فائل بنائیں۔ یہ اسکرپٹ تین کمانڈ لائن دلائل کو پڑھے گا جو متغیرات ، $ operand1 ، $ operand2 اور $ operator میں محفوظ ہوں گے۔ اسکرپٹ کو صحیح طریقے سے چلانے کے لیے ، پہلی اور تیسری دلیل کی اقدار کو نمبر ہونا چاہیے اور دوسری دلیل کی قدر چار ریاضی کے آپریٹرز ('+' ، '-' ، '/' ، 'x') میں سے کوئی بھی ہونی چاہیے۔ اگر بیان $ operator کی قیمت چیک کرے گا اور آپریٹر کی بنیاد پر آپریشن کرے گا اور قیمت پرنٹ کرے گا۔

cl1.sh

#!/bin/bash

#دلیل متغیرات پرنٹ کریں۔
باہر پھینک دیا دلیل کی اقدار ہیں: $ 1 $ 2 $ 3 '

# اسٹور دلیل اقدار۔
آپریشن 1۔=$ 1۔
آپریشن 2۔=$ 3۔
آپریٹر=$ 2۔

#ریاضی کا عمل کرنے کے لیے دوسری کمانڈ دلیل کی قیمت چیک کریں۔
اگر [[ $ آپریٹر=='+' ]]
پھر
((نتیجہ=$ operand1+$ operand2۔))
ایلف [[ $ آپریٹر=='-' ]]
پھر
((نتیجہ=$ operand1-$ operand2۔))
ایلف [[ $ آپریٹر=='ایکس' ]]
پھر
((نتیجہ=$ operand1*$ operand2۔))
ایلف [[ $ آپریٹر=='/' ]]
پھر

((نتیجہ=$ operand1/$ operand2۔))
ہو

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

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرcl1.sh

چار اقسام کے ریاضی کے آپریٹرز کے لیے اسکرپٹ کو چار مرتبہ عمل میں لایا جاتا ہے۔ دلیل کی اقدار کے لیے درج ذیل آؤٹ پٹ ظاہر ہوگا ، 6 + 3 ، 6 - 3 ، 6 x 3 اور 6/3۔ .

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

cl2.sh

. #! /ہوں/لشکر

#دلیل متغیرات پرنٹ کریں۔
باہر پھینک دیا دلیل کی اقدار ہیں: $ 1 $ 2

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

#الگ دلیل کا نام اور قدر۔
چابی= $۔(باہر پھینک دیا $ arg | کاٹ -ف 1۔ -ڈی=)
قدر= $۔(باہر پھینک دیا $ arg | کاٹ -ف 2۔ -ڈی=)

#دلیل کے نام پر مبنی پیغام پرنٹ کریں۔
معاملہ $ کلید میں
نام) باہر پھینک دیا 'طالب علم کا نام =$ قیمت'؛؛
نشان) باہر پھینک دیا حاصل شدہ نشان =$ قیمت' ؛؛
*)
ایساک
ہو گیا

آؤٹ پٹ:

مندرجہ ذیل کمانڈ لائن دلائل کے ساتھ اسکرپٹ چلائیں۔

$لشکرcl2.shنام= عبیر حسیننشان=90۔

مندرجہ بالا احکامات میں دو کمانڈ لائن دلائل فراہم کیے گئے ہیں۔ یہ ہیں نام = عبیر حسین اور نشان = 90۔ . نام اور نشانات اسکرپٹ کے ذریعہ الگ ہوتے ہیں اور آؤٹ پٹ کو فارمیٹ کرنے کے بعد دو اقدار پرنٹ کی جاتی ہیں۔

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

اوپر جائیں۔

ریاضی

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

arith.sh

#!/bin/bash
# رقم کا حساب لگائیں۔
نتیجہ= $۔((پچاس+25۔))
# سمنٹ ویلیو پرنٹ کریں۔
باہر پھینک دیا رقم =$ نتیجہ۔'

# تقسیم کا حساب لگائیں۔
نتیجہ= $۔((پچاس/25۔))
# پرنٹ ڈویژن ویلیو۔
باہر پھینک دیا تقسیم =$ نتیجہ۔'

# N کو ایک قدر تفویض کریں۔
ن۔=10۔
# پری انکریمنٹ کرنا۔
((-این))
# N کی قیمت پرنٹ کریں۔
باہر پھینک دیا کمی کے بعد قیمت =$ N'

# شارٹ ہینڈ آپریٹر کا استعمال۔
((N +=10۔ ))
# N کی قیمت پرنٹ کریں۔
باہر پھینک دیا 10 = شامل کرنے کے بعد قیمت۔$ N'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرarith.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

تمام ریاضی کے کام اس اوپر کے اسکرپٹ میں ڈبل بریکٹ استعمال کر کے کئے جاتے ہیں۔ لیکن آپ استعمال کر سکتے ہیں ' چلو '،' expr 'اور' بی سی bash میں ریاضی کا آپریشن کرنے کا حکم۔ اگر آپ bash arithmetic آپریشن کرنے کے ان کمانڈز کے بارے میں مزید جاننا چاہتے ہیں تو آپ اس ٹیوٹوریل کو دیکھ سکتے ہیں۔

اوپر جائیں۔

سٹرنگ ہیرا پھیری۔

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

جوڑنے والی سٹرنگ۔

دو یا اس سے زیادہ ڈوروں کو ایک ساتھ جوڑنے کو سٹرنگ کنکٹی نیشن کہا جاتا ہے۔ تار ایک کے بعد ایک رکھ کر بش میں شامل ہو جاتی ہے۔ سٹرنگ کنکشن کے استعمال کو ظاہر کرنے کے لیے درج ذیل سکرپٹ کے ساتھ باش فائل بنائیں۔ دو سٹرنگ متغیرات کو شروع کیا جاتا ہے اور متغیرات کو جوڑنے کے بعد پرنٹ کیا جاتا ہے۔ یہاں ، کا مواد۔ $ string1 اور $ string2۔ ضم اور پرنٹ کیا جائے گا۔

concat.sh

#!/bin/bash

#پہلے سٹرنگ متغیر کو شروع کریں۔
سٹرنگ 1۔='مجھے پسند ہے '
#دوسرا سٹرنگ متغیر شروع کریں۔
تار 2='بش پروگرامنگ'
#دونوں تاروں کو جوڑنے کے بعد پرنٹ کریں۔
باہر پھینک دیا '$ string1$ string2۔'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرconcat.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

آپ اس ٹیوٹوریل سے سٹرنگ کنکشن کے بارے میں مزید جان سکتے ہیں۔

اوپر جائیں۔

سٹرنگ کا موازنہ

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

موازنہ کریں۔

#!/bin/bash
باہر پھینک دیاکوئی سٹرنگ ویلیو درج کریں۔
پڑھیںمتن

#چیک کریں ان پٹ ڈیٹا ازگر کے برابر ہے۔
اگر [ $ متن=='ازگر' ]؛پھر
باہر پھینک دیا 'آپ کو ازگر پسند ہے۔'
اور
باہر پھینک دیا 'آپ کو پرل پسند ہے'
ہو

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرموازنہ کریں۔

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا جہاں ان پٹ ویلیو 'PERL' ہے۔

آپ سٹرنگ موازنہ کے بارے میں مزید جان سکتے ہیں۔ یہ سبق .

اسپلٹنگ سٹرنگ۔

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

split.sh

#!/bin/bash
#ایک سٹرنگ ویلیو داخل کریں۔
باہر پھینک دیاسٹرنگ ویلیو درج کریں۔
پڑھیںمتن
# حد بندی مقرر کریں۔
آئی ایف ایس=''
#$ متن کی قدر کو خلائی حد بندی کی بنیاد پر ایک صف میں تقسیم کریں۔
پڑھیں -کوآمد<<< '$ متن'
# صف کی ہر قدر پرنٹ کریں۔
کے لیےقدرمیں '$ {arr [@]}'؛
کیا
پرنٹ ایف '$ قیمتn'
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsplit.sh

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

آپ سٹرنگ موازنہ کے بارے میں مزید جان سکتے ہیں۔ یہ سبق .

تار کا کیس تبدیل کرنا۔

زیادہ تر اسکرپٹنگ زبانوں میں سٹرنگ ڈیٹا کے کیس کو تبدیل کرنے کے لیے بلٹ ان فنکشن ہوتے ہیں۔ لیکن سٹرنگ ڈیٹا کا کیس استعمال کرکے بش میں تبدیل کیا جا سکتا ہے۔ `tr` کمانڈ یا استعمال کرکے۔ ': اوپر' اور ': کم' مطلوبہ الفاظ bash میں کیس تبدیل کرنے کے طریقے جاننے کے لیے درج ذیل اسکرپٹ کے ساتھ bash فائل بنائیں۔ یہاں ، پہلا سٹرنگ ڈیٹا استعمال کرکے بڑے حروف میں تبدیل کیا جاتا ہے۔ ’’ علامت اور دوسری سٹرنگ کو استعمال کرکے لوئر کیس میں تبدیل کیا جاتا ہے۔ `tr` کمانڈ. `tr` کمانڈ سٹرنگ میں تمام بڑے حروف کو تلاش کرے گی اور حروف کو چھوٹے حروف میں تبدیل کرے گی۔

case.sh

#!/bin/bash

#پہلا سٹرنگ ڈیٹا شروع کریں۔
متن 1='[ای میل محفوظ]'

#تمام حروف کو بڑے حروف میں تبدیل کرکے $ text1 کی قدر پرنٹ کریں۔
باہر پھینک دیا $ {ای میل}

#دوسرا سٹرنگ ڈیٹا شروع کریں۔
متن 2۔= 'بش پروگرامنگ کی بنیادی باتیں'

#تمام بڑے حروف کو چھوٹے حروف میں تبدیل کرکے $ text2 کی قدر پرنٹ کریں۔
باہر پھینک دیا $ text2۔ | این ایس [: بالائی:] [: کم:]

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرcase.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

آپ سٹرنگ موازنہ کے بارے میں مزید جان سکتے ہیں۔ یہ سبق .

اوپر جائیں۔

لوپ کے ذریعے سٹرنگ ڈیٹا پڑھنا۔

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

readstr.sh

#!/بن/باس۔
# متن کے ہر لفظ کو لوپ کے لیے استعمال کرکے پڑھیں۔
کے لیےقدرمیںباش پروگرامنگ۔کے لیےشروع کرنے والے
کیا
باہر پھینک دیا $ قیمت
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرreadstr.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

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

اوپر جائیں۔

ایک سکرپٹ سے ریٹرن کوڈ واپس کرنا اور دوسرے اسکرپٹ میں پکڑنا۔

ایک بش اسکرپٹ اسکرپٹ کو کال کرکے اور استعمال کرکے دوسرے اسکرپٹ سے ریٹرن کوڈز پکڑ سکتا ہے۔ '$؟' ریٹرن ویلیو پڑھنے کے لیے۔ فرض کریں ، ایک bash فائل جس کا نام ہے۔ first.sh عملدرآمد کے بعد ایک کوڈ لوٹاتا ہے۔ نام کی ایک اور bash فائل بنائیں۔ second.sh اور ریٹرن ویلیو کو پکڑنے اور کچھ دوسرے کام کرنے کے لیے درج ذیل اسکرپٹ کو شامل کریں۔ دونوں فائلوں کا کوڈ ذیل میں دیا گیا ہے۔ first.sh فائل سے بلایا جائے گا۔ second.sh سکرپٹ کے آغاز میں فائل. first.sh ان پٹ ویلیو کی بنیاد پر ایگزٹ کوڈ لوٹائے گا۔ second.sh کوڈ کو پکڑ لے گا۔ '$؟' اور 1 کے ساتھ موازنہ کریں۔ اگر دونوں اقدار برابر ہیں تو یہ پرنٹ کرے گا ، ان پٹ نمبر 100 سے زیادہ ہے۔ ورنہ یہ چھاپے گا ان پٹ نمبر 100 سے کم یا اس کے برابر ہے۔ .

first.sh

#!/bin/bash

باہر پھینک دیا 'ایک عددی قدر درج کریں'
پڑھیںn

# چیک کریں کہ ان پٹ ویلیو 100 سے کم ہے یا نہیں۔
اگر [[ $ n - 100۔ ]]
پھر
باہر نکلیں
اور
باہر نکلیں
ہو

second.sh

#! /bin/bash

#فائل کو چلائیں ، first.sh
لشکر 'first.sh'

#چیک کریں کہ ریٹرن کوڈ 1 کے برابر ہے یا نہیں۔
اگر [ -ایک ]
پھر
باہر پھینک دیا 'ان پٹ نمبر 100 سے زیادہ ہے'
اور
باہر پھینک دیا 'ان پٹ نمبر 100 سے کم یا اس کے برابر ہے'
ہو

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsecond.sh

مندرجہ ذیل آؤٹ پٹ ظاہر ہو جائے گا جب سکرپٹ کو 55 اور 110 کے ذریعے دو بار چلایا جائے گا۔

اوپر جائیں۔

فائلوں کو پڑھنا اور لکھنا۔

فائلوں کو پڑھنا اور لکھنا بش پروگرامنگ کی عام ضروریات ہیں۔ باش کے پاس فائل کو پڑھنے یا لکھنے کے لیے دوسری زبان کی طرح کوئی بلٹ ان فنکشن نہیں ہے۔ bash میں فائل کو پڑھنے کے کئی طریقے ہیں۔ بش میں فائل پڑھنے یا لکھنے کا سب سے عام طریقہ استعمال کرنا ہے۔ `بلی` کمانڈ. لیکن یہ کمانڈ ایک وقت میں فائل کا پورا مواد پڑھنے کے لیے استعمال ہوتا ہے۔ آپ کسی بھی لوپ اور کو استعمال کرکے کسی بھی فائل کو لائن کے حساب سے پڑھ سکتے ہیں۔ 'پڑھیں' کمانڈ. ری ڈائریکٹ آپریٹر کا استعمال کرتے ہوئے ، '>' ، آپ bash میں کسی بھی فائل میں ڈیٹا لکھ سکتے ہیں۔ اگر آپ کسی فائل میں ڈیٹا شامل کرنا چاہتے ہیں تو آپ کو استعمال کرنا ہوگا۔ '>>' آپریٹر فائل پڑھنا اور لکھنا دونوں اس سیکشن کے اگلے حصے میں دکھائے گئے ہیں۔

باش میں فائل پڑھنا۔

نامی موجودہ فائل کو پڑھنے کے لیے درج ذیل اسکرپٹ کے ساتھ باش فائل بنائیں۔ ہارڈ ویئر. txt '. اس فائل کا مواد ذیل میں دیا گیا ہے۔ اسکرپٹ میں ، فائل کا پورا مواد پڑھتا ہے۔ `بلی` کمانڈ پہلے اور اگلے ، جبکہ لوپ فائل لائن کو لائن کے ذریعے پڑھنے کے لیے استعمال کیا جاتا ہے۔

ہارڈ ویئر. txt

مانیٹر
کی بورڈ
ماؤس
سکینر۔
پرنٹر۔

readfile.sh

#!/bin/bash

باہر پھینک دیا بلی کمانڈ کا استعمال کرتے ہوئے فائل پڑھنا

# کیٹ کمانڈ کا استعمال کرتے ہوئے فائل کا مواد پڑھیں۔
مواد='کیٹہارڈ ویئر. txt'
باہر پھینک دیا $ مواد۔

باہر پھینک دیا 'لوپ کا استعمال کرتے ہوئے فائل لائن کو لائن پڑھنا'

# فائل کا نام تفویض کریں۔
فائل کا نام='hardware.txt'

# فائل کی ہر لائن لوپ کے ہر تکرار سے پڑھی جائے گی۔
جبکہ پڑھیںلائن؛
کیا
# لائن پرنٹ کریں۔
باہر پھینک دیا $ لائن
ہو گیا<$ filename

آؤٹ پٹ:

درج ذیل کمانڈز چلائیں۔

$کیٹہارڈ ویئر. txt
$لشکرreadfile.sh

یہاں ، پہلی کمانڈ فائل کے مواد کو پرنٹ کرے گی ، ہارڈ ویئر. txt بغیر کسی بش اسکرپٹ کو چلائے اور دوسری کمانڈ اسکرپٹ چلائے گی۔ readfile.sh اور فائل کا مواد استعمال کرکے دو بار پرنٹ کریں۔ `بلی` کمانڈ اور 'پڑھیں' جبکہ لوپ کے ساتھ کمانڈ کریں۔ آپ اس کا دورہ کر سکتے ہیں۔ سبق فائل لائن لائن پڑھنے کے بارے میں مزید جاننے کے لیے۔

باش میں فائل لکھنا۔

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

writefile.sh

#!/bin/bash

باہر پھینک دیا 'کچھ متن درج کریں'
#سٹرنگ ڈیٹا پڑھیں۔
پڑھیںstr1
#پہلی بار فائل میں ان پٹ ڈیٹا شامل کریں۔
باہر پھینک دیا $ str1۔ >test.txt

باہر پھینک دیا 'کچھ اور متن درج کریں'
#ایک اور سٹرنگ ڈیٹا پڑھیں۔
پڑھیںstr2
#فائل کے آخر میں ان پٹ ڈیٹا شامل کریں۔
باہر پھینک دیا $ str2۔ >>test.txt

#فائل کا مکمل مواد دکھائیں۔
باہر پھینک دیا 'کیٹtest.txt'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرwritefile.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

اوپر جائیں۔

پائپ

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

نحو:

کمانڈ 1۔|کمانڈ 2|...

یہاں ، کمانڈ 1 کا آؤٹ پٹ کمانڈ 2 کے ان پٹ کے طور پر گزر جائے گا۔

اسی قسم کا کام پائپ کے ساتھ اور اس حصے کے اگلے حصے میں پائپ کے بغیر کیا جاتا ہے۔ فرض کریں کہ ایک ٹیکسٹ فائل جس کا نام ہے۔ marks.txt مندرجہ ذیل ڈیٹا کے ساتھ دیا گیا ہے۔

marks.txt

اسراف سی ایس ای-409۔ 79۔

کبیر سی ایس ای-304۔ 95۔

کییا سی ایس ای-101۔ 67۔

اسراف سی ایس ای-304۔ 88۔

کییا سی ایس ای-409۔ 90۔

اسراف سی ایس ای-101۔ 92۔

آپ کو فائل کا ڈیٹا ترتیب دینا ہوگا اور طالب علم کے نام 'K' کے تمام اندراج کو تلاش کرنا اور پرنٹ کرنا ہوگا۔ ہاں ' . آپ اس کام کو بغیر کسی پائپ کے استعمال کرتے ہوئے متعدد کمانڈز چلا کر کر سکتے ہیں جو اگلے حصے میں دکھایا گیا ہے۔ مطلوبہ آؤٹ پٹ حاصل کرنے کے لیے درج ذیل کمانڈز کو چلانے کی ضرورت ہوگی۔ پہلی کمانڈ فائل کو ترتیب دے گی۔ دوسری کمانڈ اندراج 'K کو تلاش کرے گی۔ ہاں ' استعمال کرتے ہوئے ` گرفت کمانڈ کریں اور آؤٹ پٹ کو اسٹور کریں۔ ایک temp.txt فائل. تیسری کمانڈ a کی کل لائنوں کو شمار کرے گی۔ temp.txt استعمال کرکے فائل `wc` کمانڈ.

$ترتیب دیںmarks.txt
$گرفت 'کییا'marks.txt>temp.txt
$wc -temp.txt

آؤٹ پٹ:

طالب علم کی دو اندراجات ، 'کییا' فائل میں موجود ہیں۔ لہذا مذکورہ کمانڈ چلانے کے بعد ، درج ذیل آؤٹ پٹ ظاہر ہوگی۔

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

$ترتیب دیںmarks.txt| گرفت 'کییا' | wc -

آؤٹ پٹ:

اوپر دی گئی کمانڈ کو چلانے کے بعد آپ کو پچھلی کمانڈ کی آؤٹ پٹ کی طرح درج ذیل آؤٹ پٹ ملے گی۔ کمانڈ کی پیداوار 2 ہوگی۔

اوپر جائیں۔

نتیجہ:

بش سکرپٹنگ زبان کے انتہائی مفید اور ضروری موضوعات کو اس سبق میں شامل کرنے کی کوشش کی گئی ہے۔ امید ہے کہ قارئین اس ٹیوٹوریل کو پڑھنے کے بعد مستفید ہوں گے اور باش سکرپٹ کو زیادہ موثر انداز میں لکھ سکیں گے۔