ایستگاه های کاری آنلاین OnWorks Linux و Windows

لوگو

میزبانی آنلاین رایگان برای ایستگاه های کاری

<قبلی | فهرست | بعدی>

توابع پوسته

اسکریپت ما در حال حاضر مراحل زیر را برای تولید سند HTML انجام می دهد:

1. صفحه را باز کنید.

2. هدر صفحه را باز کنید.

3. عنوان صفحه را تنظیم کنید.

4. هدر صفحه را ببندید.

5. بدنه صفحه را باز کنید.

6. عنوان صفحه خروجی.

7. مهر زمانی خروجی.

8. بدنه صفحه را ببندید.

9. صفحه را ببندید.

برای مرحله بعدی توسعه، ما بین مراحل 7 و 8 چند کار اضافه می کنیم. اینها عبارتند از:

● آپتایم و بارگذاری سیستم. این مقدار زمان از آخرین خاموش شدن یا راه‌اندازی مجدد و میانگین تعداد کارهایی است که در حال حاضر روی پردازنده در چندین بازه زمانی در حال اجرا هستند.

● فضای دیسک. استفاده کلی از فضا در دستگاه های ذخیره سازی سیستم.

● فضای خانه. مقدار فضای ذخیره سازی که توسط هر کاربر استفاده می شود.


اگر برای هر یک از این کارها دستوری داشتیم، می توانستیم آنها را به سادگی از طریق جایگزینی دستور به اسکریپت خود اضافه کنیم:



#! / bin / bash


# برنامه برای خروجی صفحه اطلاعات سیستم


TITLE="گزارش اطلاعات سیستم برای $HOSTNAME" CURRENT_TIME=$(تاریخ +"%x %r %Z")

TIMESTAMP="تولید $CURRENT_TIME توسط $USER"


گربه << _EOF_

#! / bin / bash


# برنامه برای خروجی صفحه اطلاعات سیستم


TITLE="گزارش اطلاعات سیستم برای $HOSTNAME" CURRENT_TIME=$(تاریخ +"%x %r %Z")

TIMESTAMP="تولید $CURRENT_TIME توسط $USER"


گربه << _EOF_


$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)

_EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)

_EOF_


ما می توانیم این دستورات اضافی را به دو صورت ایجاد کنیم. می‌توانیم سه اسکریپت جداگانه بنویسیم و آنها را در فهرستی که در PATH فهرست شده‌ایم قرار دهیم، یا می‌توانیم اسکریپت‌ها را در برنامه‌مان به صورت جاسازی کنیم. توابع پوسته. همانطور که قبلاً ذکر کردیم، توابع پوسته "مینی اسکریپت" هستند که در داخل اسکریپت های دیگر قرار دارند و می توانند به عنوان برنامه های مستقل عمل کنند. توابع پوسته دو شکل نحوی دارند. اول، شکل رسمی تر:

تابع نام {

دستورات

برگشت

}

و شکل ساده تر (و به طور کلی ترجیح داده شده):

نام () {

دستورات

برگشت

}

تصویر

#! / bin / bash

#! / bin / bash

# نسخه ی نمایشی تابع پوسته


function step2 { echo "Step 2" return

}

# برنامه اصلی از اینجا شروع می شود و بازتاب "Step 1"

# نسخه ی نمایشی تابع پوسته


function step2 { echo "Step 2" return

}

# برنامه اصلی از اینجا شروع می شود و بازتاب "Step 1"

جایی که نام نام تابع و دستورات مجموعه ای از دستورات موجود در تابع است. هر دو شکل معادل هستند و ممکن است به جای هم استفاده شوند. در زیر یک اسکریپت می بینیم که استفاده از یک تابع پوسته را نشان می دهد:


1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

توابع پوسته


13 مرحله 2

14 echo "Step 3"

13 مرحله 2

14 echo "Step 3"


همانطور که پوسته اسکریپت را می خواند، از خطوط 1 تا 11 عبور می کند، زیرا این خطوط شامل نظرات و تعریف تابع هستند. اجرا در خط 12 با یک شروع می شود از دست فرمان. خط 13 تماس عملکرد پوسته step2 و پوسته عملکرد را درست مانند هر دستور دیگری اجرا می کند. سپس کنترل برنامه به خط 6 و خط دوم منتقل می شود از دست فرمان اجرا می شود. خط 7 بعدی اجرا می شود. آن برگشت دستور تابع را خاتمه می دهد و کنترل را به برنامه در خطی که تابع فراخوانی می شود (خط 14) برمی گرداند از دست فرمان اجرا می شود. توجه داشته باشید که برای اینکه فراخوانی های تابع به عنوان توابع پوسته شناخته شوند و به عنوان نام برنامه های خارجی تفسیر نشوند، تعاریف تابع پوسته باید قبل از فراخوانی در اسکریپت ظاهر شوند.

ما حداقل تعاریف تابع پوسته را به اسکریپت خود اضافه می کنیم:



#! / bin / bash


# برنامه برای خروجی صفحه اطلاعات سیستم


TITLE="گزارش اطلاعات سیستم برای $HOSTNAME" CURRENT_TIME=$(تاریخ +"%x %r %Z")

TIMESTAMP="تولید $CURRENT_TIME توسط $USER"


report_uptime () { بازگشت

}


report_disk_space () { return

}


report_home_space () { بازگشت

}


گربه << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)

#! / bin / bash


# برنامه برای خروجی صفحه اطلاعات سیستم


TITLE="گزارش اطلاعات سیستم برای $HOSTNAME" CURRENT_TIME=$(تاریخ +"%x %r %Z")

TIMESTAMP="تولید $CURRENT_TIME توسط $USER"


report_uptime () { بازگشت

}


report_disk_space () { return

}


report_home_space () { بازگشت

}


گربه << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)


_EOF_

_EOF_


نام توابع پوسته از قوانین مشابه متغیرها پیروی می کند. یک تابع باید حداقل یک دستور داشته باشد. در برگشت دستور (که اختیاری است) نیاز را برآورده می کند.


برترین سیستم عامل Cloud Computing در OnWorks: