OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

وظائف شل

يقوم البرنامج النصي الخاص بنا حاليًا بتنفيذ الخطوات التالية لإنشاء مستند HTML:

1. افتح الصفحة.

2. فتح رأس الصفحة.

3. تعيين عنوان الصفحة.

4. إغلاق رأس الصفحة.

5. فتح نص الصفحة.

6. عنوان صفحة الإخراج.

7. إخراج الطابع الزمني.

8. أغلق نص الصفحة.

9. إغلاق الصفحة.

بالنسبة إلى المرحلة التالية من التطوير ، سنضيف بعض المهام بين الخطوتين 7 و 8. وستشمل هذه:

● الجهوزية والتحميل النظام. هذا هو مقدار الوقت منذ آخر إغلاق أو إعادة تشغيل ومتوسط ​​عدد المهام التي يتم تشغيلها حاليًا على المعالج خلال فترات زمنية عدة.

● مساحة القرص. الاستخدام العام للمساحة على أجهزة تخزين النظام.

● مساحة المنزل. مقدار مساحة التخزين التي يستخدمها كل مستخدم.


إذا كان لدينا أمر لكل مهمة من هذه المهام ، فيمكننا إضافتها إلى البرنامج النصي الخاص بنا ببساطة من خلال استبدال الأوامر:



#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


TITLE = "تقرير معلومات النظام لـ $ HOSTNAME" CURRENT_TIME = $ (التاريخ + "٪ x٪ r٪ Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


قطة << _EOF_

#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


TITLE = "تقرير معلومات النظام لـ $ HOSTNAME" CURRENT_TIME = $ (التاريخ + "٪ x٪ r٪ Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


قطة << _EOF_


العنوان $

العنوان $

TIMESTAMP دولار

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_

العنوان $

العنوان $

TIMESTAMP دولار

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_


يمكننا إنشاء هذه الأوامر الإضافية بطريقتين. يمكننا كتابة ثلاثة نصوص منفصلة ووضعها في دليل مدرج في مسارنا ، أو يمكننا تضمين البرامج النصية في برنامجنا مثل وظائف شل. كما ذكرنا سابقًا ، فإن وظائف الصدفة هي "نصوص مصغرة" توجد داخل نصوص أخرى ويمكن أن تعمل كبرامج مستقلة. دوال شل لها شكلين نحوي. أولاً ، الشكل الأكثر رسمية:

وظيفة الاسم {

الأوامر

عائد أعلى

}

والشكل الأبسط (والمفضل بشكل عام):

الاسم () {

الأوامر

عائد أعلى

}

صورة

#! / بن / باش

#! / بن / باش

# عرض وظيفة شل


وظيفة step2 {صدى "الخطوة 2" يعود

}

# البرنامج الرئيسي يبدأ هنا صدى "الخطوة 1"

# عرض وظيفة شل


وظيفة step2 {صدى "الخطوة 2" يعود

}

# البرنامج الرئيسي يبدأ هنا صدى "الخطوة 1"

أين الاسم هو اسم الوظيفة و الأوامر عبارة عن سلسلة من الأوامر المضمنة في الوظيفة. كلا الشكلين متكافئان ويمكن استخدامهما بالتبادل. نرى أدناه نصًا يوضح استخدام دالة shell:


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 صدى "الخطوة 3"

13 خطوة 2

14 صدى "الخطوة 3"


عندما يقرأ الغلاف البرنامج النصي ، فإنه يمر عبر الأسطر من 1 إلى 11 ، حيث تتكون هذه السطور من التعليقات وتعريف الوظيفة. يبدأ التنفيذ في السطر 12 بحرف صدى أمر. السطر 13 المكالمات وظيفة شل step2 وتقوم الصدفة بتنفيذ الوظيفة تمامًا كما تفعل مع أي أمر آخر. ثم ينتقل التحكم في البرنامج إلى السطر 6 ، والثاني صدى يتم تنفيذ الأمر. يتم تنفيذ السطر 7 بعد ذلك. إنه عائد أعلى الأمر ينهي الوظيفة ويعيد التحكم إلى البرنامج في السطر الذي يلي استدعاء الوظيفة (السطر 14) ، والنهائي صدى يتم تنفيذ الأمر. لاحظ أنه من أجل التعرف على استدعاءات الوظائف كوظائف shell ولا يتم تفسيرها على أنها أسماء برامج خارجية ، يجب أن تظهر تعريفات وظائف shell في البرنامج النصي قبل استدعائها.

سنضيف الحد الأدنى من تعريفات وظائف shell إلى البرنامج النصي الخاص بنا:



#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


TITLE = "تقرير معلومات النظام لـ $ HOSTNAME" CURRENT_TIME = $ (التاريخ + "٪ x٪ r٪ Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


report_uptime () {عودة

}


report_disk_space () {عودة

}


report_home_space () {return

}


قطة << _EOF_

العنوان $

العنوان $

TIMESTAMP دولار

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

#! / بن / باش


# برنامج لإخراج صفحة معلومات النظام


TITLE = "تقرير معلومات النظام لـ $ HOSTNAME" CURRENT_TIME = $ (التاريخ + "٪ x٪ r٪ Z")

TIMESTAMP = "تم توليده $ CURRENT_TIME ، بواسطة $ USER"


report_uptime () {عودة

}


report_disk_space () {عودة

}


report_home_space () {return

}


قطة << _EOF_

العنوان $

العنوان $

TIMESTAMP دولار

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)


_EOF_

_EOF_


تتبع أسماء وظائف Shell نفس قواعد المتغيرات. يجب أن تحتوي الوظيفة على أمر واحد على الأقل. ال عائد أعلى الأمر (وهو اختياري) يفي بالمتطلبات.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: