Ù...غربية Ù...ع عشيقها ÙÙŠ السرير، شاهد Ø¨Ù†ÙØ³Ùƒ
فہرست کا خانہ:
باش فنکشن بنیادی طور پر کمانڈز کا ایک سیٹ ہے جسے متعدد بار کہا جاسکتا ہے۔ فنکشن کا مقصد یہ ہے کہ آپ اپنی باش اسکرپٹس کو زیادہ پڑھنے کے قابل بنائیں اور بار بار اسی کوڈ کو لکھنے سے گریز کریں۔
زیادہ تر پروگرامنگ زبانوں کے مقابلے میں ، بش افعال کچھ حد تک محدود ہیں۔ اس ٹیوٹوریل میں ، ہم باش کے افعال کی بنیادی باتوں کا احاطہ کریں گے اور آپ کو دکھائیں گے کہ انھیں اپنی شیل اسکرپٹس میں کیسے استعمال کریں۔
بش تقریب کا اعلامیہ
باش فنکشن کا اعلان کرنے کا نحو بہت آسان ہے۔ ان کا اعلان دو مختلف شکلوں میں کیا جاسکتا ہے:
-
پہلا فارمیٹ فنکشن کے نام سے شروع ہوتا ہے ، اس کے بعد قوسین ہوتے ہیں۔ یہ ترجیحی اور زیادہ استعمال شدہ شکل ہے۔
function_name () { commands }ایک لائن ورژن:
function_name () { commands; }دوسرا فارمیٹ فنکشن کے نام کے بعد
functionمحفوظ شدہ لفظ سے شروع ہوتا ہے۔function function_name { commands }ایک لائن ورژن:
function function_name { commands; }
نوٹ کرنے کے لئے کچھ نکات:
- گھوبگھرالی منحنی خطوط وحدانی ces between کے درمیان کمانڈ فہرست فنکشن کا باڈی ہے۔ گھوبگھرالی منحنی خطوط و ضوابط جو جسم کے گرد گھیر لیتے ہیں ان کو خالی جگہوں یا نئی لائنوں کے ذریعہ جسم سے الگ کرنا چاہئے۔ فنکشن کی وضاحت کرنے سے اس پر عمل نہیں ہوتا ہے۔ باز فنکشن کی درخواست کرنے کے لئے ، صرف فنکشن کا نام استعمال کریں۔ جب بھی تقریب کو شیل اسکرپٹ میں بلایا جاتا ہے تو گھوبگھرالی منحنی خطوط وحدانی کے مابین کمانڈز پر عمل درآمد کیا جاتا ہے۔ فنکشن میں کسی بھی کال سے پہلے فنکشن ڈیفینیشن رکھنی چاہئے۔ جب سنگل لائن “کمپیکٹڈ” افعال استعمال کرتے ہیں تو ، ایک سیمیولن
;آپ کو فنکشن میں آخری کمانڈ پر عمل کرنا چاہئے۔ آپ کو ہمیشہ اپنے فنکشن کے ناموں کو وضاحتی رکھنے کی کوشش کرنی چاہئے۔
اس کو بہتر طور پر سمجھنے کے لئے ، درج ذیل مثال پر ایک نظر ڈالیں:
. / ہیلو_ورلڈ.شیس
#!/bin/bash hello_world () { echo 'hello, world' } hello_world
آئیے لائن کے ذریعہ کوڈ لائن کا تجزیہ کریں:
- لائن
3ہم اس کا نام دے کر ، اور گھوبگھرالی منحنی خطوط وحدانی کھول کر اس کی تعریف کر رہے ہیں جو فنکشن کے جسم کے آغاز کا اشارہ کرتا ہے۔ لائن4فنکشن باڈی ہے۔ فنکشن باڈی ایک سے زیادہ کمانڈز اور متغیر اعلامیہ پر مشتمل ہوسکتی ہے۔ لائن5، اختتامی گھوبگھرالی بریکٹ the ،hello_worldفنکشن کے اختتام کی وضاحت کرتی ہے۔ لائن7ہم فنکشن کو انجام دے رہے ہیں۔ آپ جتنی دفعہ ضرورت ہو فنکشن کو انجام دے سکتے ہیں۔
اگر آپ اسکرپٹ چلاتے ہیں تو ، یہ
hello, world
پرنٹ کرے گا۔
متغیر کا دائرہ کار
عالمی متغیرات متغیرات ہیں جو اسکرپٹ میں قطع نظر اسکرپٹ میں کہیں سے بھی حاصل کی جاسکتی ہیں۔ باش میں ، تمام متغیر کو بطور ڈیفالٹ عالمی قرار دیا جاتا ہے ، یہاں تک کہ اگر اس فعل کے اندر اعلان کیا گیا ہو۔
مقامی متغیرات کو
local
کلیدی لفظ کے ساتھ فنکشن باڈی کے اندر اعلان کیا جاسکتا ہے اور صرف اس فنکشن کے اندر ہی استعمال کیا جاسکتا ہے۔ آپ مختلف افعال میں ایک ہی نام کے ساتھ مقامی متغیر کرسکتے ہیں۔
بہتر انداز میں یہ بتانے کے لئے کہ بش میں متغیرات کا دائرہ کار کس طرح کام کرتا ہے ، آئیے ایک مثال پر غور کریں:
vari / متغیرات_کوپ.ش
#!/bin/bash var1='A' var2='B' my_function () { local var1='C' var2='D' echo "Inside function: var1: $var1, var2: $var2" } echo "Before executing function: var1: $var1, var2: $var2" my_function echo "After executing function: var1: $var1, var2: $var2"
اسکرپٹ دو عالمی متغیرات
var1
اور
var2
کی وضاحت کرکے شروع ہوتا ہے۔ پھر ایک ایسا فنکشن جو مقامی متغیر
var1
کرتا ہے اور عالمی متغیر
var2
ترمیم کرتا ہے۔
Before executing function: var1: A, var2: B Inside function: var1: C, var2: D After executing function: var1: A, var2: D
مندرجہ بالا آؤٹ پٹ سے ، ہم یہ نتیجہ اخذ کرسکتے ہیں کہ:
- اگر آپ موجودہ عالمی متغیر کے نام سے ایک ہی نام کے ساتھ فنکشن باڈی کے اندر ایک مقامی متغیر مرتب کرتے ہیں تو ، اس کی عالمی متغیر پر فوقیت ہوگی۔ گلوبل متغیر کو فعل کے اندر سے تبدیل کیا جاسکتا ہے۔
ریٹرن ویلیوز
"اصلی" پروگرامنگ زبانوں میں افعال کے برعکس ، باش فنکشنز آپ کو کال کرنے پر کوئی قیمت واپس کرنے کی اجازت نہیں دیتی ہیں۔ جب کسی باز فنکشن کی تکمیل ہوتی ہے تو ، اس کی واپسی کی قیمت فنکشن میں پائے جانے والے آخری بیان کی حیثیت ہوتی ہے ،
0
کامیابی کے لئے
0
اور ناکامی کے ل 25 1 - 255 کی حد میں غیر صفر اعشاریے کی تعداد۔
واپسی کی حیثیت کو
return
مطلوبہ الفاظ کا استعمال کرکے بیان کیا جاسکتا ہے ، اور یہ متغیر to کو تفویض کیا جاتا ہے
$?
.
return
بیان سے فنکشن ختم ہوجاتا ہے۔ آپ اس کے بارے میں فنکشن کی خارجی حیثیت کے بارے میں سوچ سکتے ہیں۔
#!/bin/bash my_function () { echo "some result" return 55 } my_function echo $?
some result 55
واقعی کسی فنکشن سے من مانی قیمت واپس کرنے کے ل we ، ہمیں دوسرے طریقے استعمال کرنے کی ضرورت ہے۔ آسان ترین آپشن یہ ہے کہ اس تقریب کا نتیجہ عالمی متغیر کو تفویض کیا جائے۔
return / return_values.sh
#!/bin/bash my_function () { func_result="some result" } my_function echo $func_result
some result
دوسرا ، کسی فنکشن سے ویلیو واپس کرنے کا بہتر آپشن یہ ہے کہ نیچے کی گئی ایکو یا
stdout
کا استعمال کرتے ہوئے
stdout
پر ویلیو بھیجیں۔
#!/bin/bash my_function () { local func_result="some result" echo "$func_result" } func_result="$(my_function)" echo $func_result
some result
اس
func_result
آؤٹ پر میسج پرنٹ کرنے والے فنکشن پر عمل کرنے کے بجائے ، ہم فنکشن آؤٹ پٹ کو
func_result
متغیر کو تفویض کر رہے ہیں
func_result
$()
کمانڈ متبادل کو استعمال کرتے ہوئے۔ متغیر کو بعد میں ضرورت کے مطابق استعمال کیا جاسکتا ہے۔
بش افعال میں دلائل پاس کرنا
بیش فنکشن میں کسی بھی طرح کے بہت سے دلائل پاس کرنے کے لئے ، انہیں سیدھے سیدھے جگہ کے ساتھ الگ کرکے ، فنکشن کے نام کے مطابق رکھیں۔ اس میں خالی جگہوں کے ساتھ کسی دلیل کو غلط انداز میں ڈالنے سے بچنے کیلئے دلائل کو دوگنا کرنا ایک عمدہ عمل ہے۔
- منظور شدہ پیرامیٹرز
$1،$2،$3…$n، جو فنکشن کے نام کے بعد پیرامیٹر کی پوزیشن کے مطابق ہیں۔$0متغیر فنکشن کے نام کے لئے مختص ہے۔ vari$#متغیر میں پوزیشن والے پیرامیٹرز / دلائل کی تعداد ہوتی ہے فنکشن۔$*اور$@متغیر کے پاس فنکشنل میں منتقل کردہ تمام پوزیشنل پیرامیٹرز / دلائل ہیں۔- جب ڈبل حوالہ دیا گیا تو ،
"$*"جگہ سے الگ ایک ہی تار میں پھیل جاتا ہے (IFS کا پہلا حرف) -"$1 $2 $n"۔جب ڈبل حوالہ دیا گیا تو ،"$@"الگ الگ تار میں پھیل جاتا ہے -"$1" "$2" "$n"جب دوہرا حوالہ نہیں دیا جاتا ہے تو ،$*اور$@ایک جیسے ہوتے ہیں۔
- جب ڈبل حوالہ دیا گیا تو ،
یہاں ایک مثال یہ ہے:
passing / Pass_arguments.sh
#!/bin/bash greeting () { echo "Hello $1" } greeting "Joe"
نتیجہ اخذ کرنا
باش فنکشن دوبارہ استعمال کے قابل کوڈ کا ایک ایسا بلاک ہے جو کسی خاص آپریشن کو انجام دینے کے لئے ڈیزائن کیا گیا ہے۔ ایک بار تعریف کرنے کے بعد ، اسکرپٹ میں فنکشن کو متعدد بار کہا جاسکتا ہے۔
آپ یہ بھی پڑھ سکتے ہیں کہ لمبی کمانڈ کے لئے یادگار شارٹ کٹ کمانڈ بنانے کے لئے باش فنکشن کا استعمال کیسے کریں۔
بش ٹرمینلای بے کی تلاش کے انجن مالفنگ افعال، پرائیویٹ مصنوعات
ایبا کی تلاش کے انجن کو حال ہی میں خراب ہوگیا ہے، لیکن کمپنی نے مسئلہ طے کی ہے اور تاجروں کو کریڈٹس جاری کرے گی.
Gmail خود کار طریقے سے تلاش کی افعال حاصل کرتا ہے
Google رابطے کی خصوصیت کو Gmail کو رابطے، منسلکات، اور اسٹوریج فوری پیغام پیغام بات چیت سے تیز رفتار تک رسائی حاصل کرنے کی اجازت دیتا ہے.
Google تازہ کاری کچھ ایپلی کیشن افعال
گوگل نے کچھ ایپس کے گاہکوں کے لئے کچھ جی میل اور ڈچ کی خصوصیات کو اپ ڈیٹ کیا.







