بش میں افعال استعمال کرنے کا طریقہ

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

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

افعال کی وضاحت

افعال کی تعریف کرنے کے دو طریقے ہیں: فنکشن اعلامیہ کے ساتھ یا اس کے بغیر:

function nombre_funcion () 
{
    # codigo
}

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

nombre_funcion ()
{
    # codigo
}

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

#!/usr/bin/env bash

# ~/.bin/encontrar
# encuentra archivos a partir de la descripción de su nombre en un directorio específico
#
# Por Pedro Ruiz Hidalgo
# version 1.0.0
# Copyright © enero 2017
#
#

EXIT_OK=0
EXIT_BAD=66

PATRON=$1
DIRECTORIO=$2

autor ()
{
 echo -e "\nPedro Ruiz Hidalgo @petrorum. Copyright © 2017\n"
}

ayuda ()
{
 echo -e "\nencontrar [PATRON] [DIRECTORIO]\n"
} 

noparams ()
{
 echo -e "\nSon necesarios dos parámetros\nencontrar -h para ayuda\n"
 read -p "¿Quieres ver la ayuda? (S|s)" -n 1 -r
 if [[ $REPLY =~ ^[Ss]$ ]];
    then
       echo ""
       ayuda
 fi
}

nodir ()
{
 echo -e "\nDirectorio no Existe\n"
}

if [[ $PATRON == "-h" ]];
then 
 ayuda
 exit $EXIT_OK
fi

if [[ $PATRON == "-a" ]];
then 
 autor
 exit $EXIT_OK
fi

if [ $# -lt 2 ];
then
 noparams
else
 if [ -d $DIRECTORIO ];
 then
 echo ""
 find $DIRECTORIO -name $PATRON*
 echo ""
 exit $?
 else 
 nodir 
 exit EXIT_BAD
 fi
fi


اسکرپٹ تجزیہ

تعریفیں

باز کے لئے کامیابی کے ساتھ مکمل ہونے والے ہر عمل میں سگنل کے بطور کوڈ "0" ہونا ضروری ہے. لائنز 12 اور 13 ترمیم شدہ غلطی کوڈ کی تعریف کرتی ہیں کامیابی کے لئے EXIT_OK y EXIT_BAD ناکامی پر خارج ہونے کیلئے.

لائنز 15 اور 16 میں ، پیٹرٹرن اور ڈائریکٹری متغیرات کو پہلے ($ 1) اور دوسرے ($ 2) پیرامیٹرز تفویض کیے گئے ہیں جو اسکرپٹ کے نام کے بعد کمانڈ لائن پر ظاہر ہوتے ہیں ، جیسا کہ ہم اسے چلانے کے بعد بعد میں دیکھیں گے۔

میں لائن 18 ہم اپنا پہلا فنکشن تیار کرتے ہیں۔ فنکشن called مصنف called کہلاتا ہے اسکرپٹ تصنیف جب ہم اسے "-a" دلیل کے ساتھ کہتے ہیں جیسا کہ آپ if the 50 on 54 لائنوں میں دیکھ سکتے ہیں۔ دلیل "-اور" لائن 23 سے od line n enc کو انکوڈنگ کرکے «اگلی لائن of کا تسلسل ظاہر کرنے کی اجازت دیتا ہے.

نوپارامس (کالا 28 ~ 37) پر کال کرنے والے ان واقعات کو سنبھالنے کے انچارج ہیں جو اس وقت ہوتی ہیں جب اسکرپٹ کو بغیر کسی پیرامیٹرز کے بلایا جاتا ہو۔ ہم دکھاتے ہیں ، نئے لائن کوڈز کے مابین مناسب طریقے سے منسلک ، ایک پیغام جس میں یہ ظاہر ہوتا ہے کہ اسکرپٹ کو دو پیرامیٹرز کے ساتھ چلایا جانا چاہئے ، پھر آپشن (لائن 31) کو استعمال کرنے کے لئے دکھایا گیا ہے پڑھیں اگر آپ مدد دکھانا چاہتے ہو تو یہ آپ کو "S" یا "s" دبانے کا اشارہ کرتا ہے۔ لائن 32 میں ہم لفظی کہتے ہیں: 'اگر جواب (جو ہمارے پاس متغیر میں آتا ہے) PL جواب دیں) میں کسی بھی ایسے حرف پر مشتمل ہوتا ہے جو بڑے یا چھوٹے حرف '، پھر (لائن 33) ایک خالی لائن (لائن 34) دکھاتا ہے اور مدد کی تقریب (لائنز 23 ~ 26) پر عمل کرتا ہے۔

نوڈر فنکشن (لائنز 39 ~ 42) پر عمل درآمد ہو گا جب ہمیں پتہ چلتا ہے کہ جہاں ڈائریکٹری میں تلاش کرنے کی کوشش کی جارہی ہے وہ موجود نہیں ہے۔

فعالیت

اس کے ساتھ ہمارے پاس پہلے ہی موجود ہے تمام ضروری افعال کی وضاحت ہمارے پروگرام کو عملی جامہ پہنانے کے ل line ، جو دراصل لائن on، پر شروع ہوتا ہے ، جانچ کر رہا ہے کہ آیا اسکرپٹ کو ملنے والے پیرامیٹرز میں سے سب سے پہلے "-h" ہے ، اگر یہ سچ ہے تو ، مدد فنکشن کو انجام دیں اور معمول کے خاتمے کی نشاندہی کرتی ہے.

اگر پیٹرٹرن (پہلو پیرامیٹر جیسا کہ لائن 15 میں بیان کیا گیا ہے) "-a" ہے تو مصنف کو "-h" آپشن کے ل for پچھلے پیراگراف میں بیان کردہ اسی میکانزم کے بعد دکھایا گیا ہے۔

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

پھانسی اور جانچ

$ encontrar
$ encontrar -a
$ encontrar -h
$ encontrar index aljflaskjf #directorio no existe
$ encontrar index public_html
$

En بش کے بارے میں مندرجہ ذیل مضامین ہم میکانزم دیکھیں گے افعال میں پیرامیٹرز کا استعمال کریںہم یہ بھی دیکھیں گے کہ کیسے واضح اعداد و شمار اسی سے

مجھے امید ہے اور امید ہے کہ یہ پوسٹ آپ کے لئے کارآمد رہی۔


مضمون کا مواد ہمارے اصولوں پر کاربند ہے ادارتی اخلاقیات. غلطی کی اطلاع دینے کے لئے کلک کریں یہاں.

ایک تبصرہ ، اپنا چھوڑ دو

اپنی رائے دیں

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا.

*

*

  1. اعداد و شمار کے لئے ذمہ دار: میگل اینگل گاتین
  2. ڈیٹا کا مقصد: اسپیم کنٹرول ، تبصرے کا انتظام۔
  3. قانون سازی: آپ کی رضامندی
  4. ڈیٹا کا مواصلت: اعداد و شمار کو تیسری پارٹی کو نہیں بتایا جائے گا سوائے قانونی ذمہ داری کے۔
  5. ڈیٹا اسٹوریج: اوکیسٹس نیٹ ورکس (EU) کے میزبان ڈیٹا بیس
  6. حقوق: کسی بھی وقت آپ اپنی معلومات کو محدود ، بازیافت اور حذف کرسکتے ہیں۔

  1.   جوسیا کہا

    ہیلو،
    بہت دلچسپ اور بہت واضح۔
    صرف ایک نوٹ؛ متغیر EXIT_BAD کے سامنے لائن 68 XNUMX پر ایک missing غائب ہے۔
    میں آپ کے مضامین کے ساتھ یقینی طور پر سیکھنا جاری رکوں گا۔