ورود ثبت نام 021 - 49624
Logo Logo
  • سرور مجازی
    • فروش سرور مجازیسرور مجازی خارج20 لوکیشن ، تحویل فوری
    • فروش سرور مجازیسرور مجازی ایران5 دیتاسنتر ، ترافیک نامحدود
    • فروش سرور گرافیک دارسرور مجازی گرافیک دارمناسب رندر ، ماشین لرنینگ
    • فروش سرور گرافیک دارسرور مجازی تریدآی پی ثابت ، ترافیک نامحدود
    • فروش سرور مجازیسرور مجازی بورسسرعت بالا ، دسترسی آسان
    • فروش سرور مجازیسرور مجازی اقتصادیآی پی ثابت ، قیمت مناسب
  • سرور اختصاصی
    • فروش سرور اختصاصیسرور اختصاصی ایرانپورت 10 گیگ ، سخت افزار بروز
    • فروش سرور اختصاصیسرور اختصاصی خارجلوکیشن های برتر
    • فروش سرور اختصاصیکولوکیشنارائه از 5 دیتاسنتر برتر
  • هاست
    • هاستهاست ایرانبکاپ منظم ، پهنای باند نامحدود
    • هاستهاست خارجبکاپ منظم ، ترافیک نامحدود
    • فروش اس اس الگواهینامه SSLدامنه های داخلی و خارجی
  • دامنه
  • دانشنامه
  • تماس با ما

لینک های مفید

  • About

اسکریپت نویسی پیشرفته لینوکس – توابع

  • خانه
  • ادامه مطلب
linux advanced linux scripting - novinhost.org
مهر 20 1400
  • وبلاگ

اسکریپت نویسی پیشرفته لینوکس برای وبمستر ها – قسمت ۱ – تعریف توابع : ما در زندگی روزمره نیز بسیاری از مجموعه عملکرد های خود را در قالب توابع بسته بندی میکنیم, مثلا رساندن بچه ها به مدرسه! که شامل روشن کردن ماشین, رانندگی تا دم درب منزل, بوق زدن, سوار کردن بچه ها, رانندگی تا درب مدرسه, توقف و پارک کردن, پیاده شدن بچه ها. همه این کارها را در قالب جمله “رساندن بچه ها به مدرسه” بسته بندی میکنیم تا در مکالمات روزمره و برنامه ریزی روزانه راحت تر به آنها اشاره کنیم, در برنامه نویسی نیز همین استراتژی را پیش میبریم,

اسکریپت نویسی پیشرفته لینوکس - تعریف توابع

فرض کنید ۲۰ دستور پشت سر هم بارها در طول برنامه استفاده شده اند, راه حل منطقی این است که به این مجموعه دستورها را در قالب یک نام مربوط بسته بندی کنیم و در موقع نیاز فقط آن نام را صدا بزنیم تا آن ۲۰ دستور بلافاصله اجرا شوند.

اسکریپت نویسی پیشرفته لینوکس – تعریف توابع

 در مثال زیر مجموعه دستورات افزودن کاربر جدید به سیستم را در قالب تابع add_a_user() بسته بندی کردیم:

  • add_a_user()
    {
    USER=$1
    PASSWORD=$2
    shift; shift;
    # Having shifted twice, the rest is now comments …
    COMMENTS=$@
    echo “Adding user $USER …”
    echo useradd -c “$COMMENTS” $USER
    echo passwd $USER $PASSWORD
    echo “Added user $USER ($COMMENTS) with pass $PASSWORD”
    }
  • تعریف تابع با نوشتن نام تابع و افزودن پرانتز باز و بسته شروع میشود, سپس یک براکت باز شروع بلوک دستورات تابع را مشخص میکند.
  • دستور اول متغیر موقعیتی (که در قسمت های قبل توضیح داده شده) اول را در متغیر USER قرار میدهد.
  • دستور بعدی, پارامتر متغیر موقعیتی دوم را به عنوان رمز عبور کاربر در متغیر PASSWORD قرار میدهد
  • دستور سطر سوم ورودی های متغیر های موقعیتی را دو بار شیفت میدهد تا بقیه ورودی ها به عنوان Comment  شناخته شوند.
  • دستور بعد همه ورودی های باقی مانده را با متغیر $@   در متغیر COMMENTS   میریزد.
  • در دستورات بعدی نیز کاربر را اضافه کرده و رمز عبور را تعیین میکنیم و نتیجه را با دستور echo به اطلاع کاربر میرسانیم.

حالا یک تابع داریم که میتوانیم مانند مثال زیر بارها آنرا احضار کنیم:

add_a_user bob letmein Bob Holness the presenter
 add_a_user fred badpassword Fred Durst the singer
 add_a_user bilko worsepassword Sgt. Bilko the role model

با دستورات بالا, تابع add_a_user   سه بار احضار میشود و هر بار یک کاربر را تعریف کرده و پسورد مشخصی را به آن اختصاص میدهد.

توابع متغیر ها را حتی در خارج از بلوک خود تغییر میدهند, به مثال زیر توجه کنید:

 myfunc()
 {
   echo "I was called as : $@"
   x=2
 }

### Main script starts here

echo “Script was called with $@”
x=1
echo “x is $x”
myfunc 1 2 3
echo “x is $x”

خروجی به صورت زیر خواهد بود»

Script was called with a b c
 x is 1
 I was called as : 1 2 3
 x is 2

یعنی تابع متغیر x را در خارج از بلوک خود از ۱ به ۲ تغییر میدهد.

یک مثال دیگر:

mfunc()

{

x=3

}

x=2

echo “$x”

mfunc

echo “$x”

خروجی به صورت

۲

خواهد بود

در قسمت بعد توابع بازگشتی را توضیح خواهیم داد.

امتیاز دهید!
نوشته قبلی نوشته بعدی

درج نظر لغو پاسخ

نوشته‌های تازه

  • URL چیست و چه کاربرد هایی دارد ؟
  • مقدمه ای بر HTML5 و مفاهیم مربوطه
  • آشنایی با windows server 2012 | بخش دوم
  • آشنایی با ویندوز سرور ۲۰۱۲
  • موتور های جستحو چگونه کار می کنند ؟

آخرین دیدگاه‌ها

  1. محمدمهدی در آموزش نصب wordpress ، نصب آسان و سریع وردپرس در ۵ دقیقه
  2. pars-design.ir در اسکن امنیتی ورد پرس با WPscan + فیلم
  3. نوین هاست در اتصال به سرور های لینوکسی + آموزش
  4. یاسین در اتصال به سرور های لینوکسی + آموزش
  5. نوین هاست در اصطلاحات Docker

دسته‌ها

  • راهکار های سازمانی
  • سرور مجازی
  • لایسنس
  • محصولات
  • نمایندگی فروش
  • وبلاگ

برچسب‌ها

اموزش نصب ssl در ویندوز سرور اموزش نصب اس اس ال رایگان اموزش وصل شدن به سرور نحوه اتصال به سرور با موبایل
Logo


تلفن : 49624 – 021
تلفن : 91070308 – 021
admin@novinhost.org
تلگرام : novinhost_org@
کانال تلگرام : novinhost@
تهران ، فلکه دوم صادقیه ، بلوار آیت الله کاشانی ، روبروی پمپ بنزین ، پلاک 160 طبقه 8

سرور مجازی

  • سرور مجازی آلمان
  • سرور مجازی فرانسه
  • سرور مجازی انگلیس
  • سرور مجازی آمریکا
  • سرور مجازی کانادا
  • سرور مجازی هلند
  • سرور مجازی فنلاند

سرور اختصاصی

  • سرور اختصاصی ایران
  • سرور اختصاصی برج میلاد
  • سرور اختصاصی تبیان
  • سرور اختصاصی خارج
  • سرور اختصاصی آلمان
  • سرور اختصاصی فرانسه
  • سرور اختصاصی آمریکا

نمادها و مجوزها

نمادها و مجوزهانظام صنفی

  • شبکه های اجتماعی نوین هاست را در شبکه های اجتماعی حتما دنبال کنید!

تمام حقوق این سایت محفوظ و متعلق به نوین هاست می باشد.

  • قوانین سرویس دهی
  • درباره ما
  • شماره حساب ها
  • استخدام