OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

פונקציות מעטפת

הסקריפט שלנו מבצע כרגע את השלבים הבאים כדי ליצור את מסמך ה-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

}

# התוכנית הראשית מתחילה כאן הד "שלב 1"

# הדגמת פונקציית מעטפת


function step2 { echo "Step 2" return

}

# התוכנית הראשית מתחילה כאן הד "שלב 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 הד "שלב 3"

13 שלב 2

14 הד "שלב 3"


כאשר המעטפת קוראת את הסקריפט, היא עוברת על פני שורות 1 עד 11, שכן שורות אלו מורכבות מהערות והגדרת הפונקציה. הביצוע מתחיל בשורה 12, עם an הד פקודה. קו 13 שיחות פונקציית המעטפת step2 והמעטפת מבצעת את הפונקציה בדיוק כמו כל פקודה אחרת. בקרת התוכנית עוברת לשורה 6 והשנייה הד הפקודה מבוצעת. שורה 7 מבוצעת לאחר מכן. שֶׁלָה לַחֲזוֹר הפקודה מסיימת את הפונקציה ומחזירה את השליטה לתוכנית בשורה שלאחר קריאת הפונקציה (שורה 14), והסופית הד הפקודה מבוצעת. שימו לב שכדי שקריאות לפונקציות יזהו כפונקציות מעטפת ולא יתפרשו כשמות של תוכניות חיצוניות, הגדרות פונקציות מעטפת חייבות להופיע בסקריפט לפני הקריאה שלהן.

נוסיף הגדרות פונקציית מעטפת מינימליות לסקריפט שלנו:



#! / bin / bash


# תוכנית לפלט דף מידע מערכת


TITLE="דוח מידע מערכת עבור $HOSTNAME" CURRENT_TIME=$(תאריך +"%x %r %Z")

TIMESTAMP="נוצר $CURRENT_TIME, על ידי $USER"


report_uptime () { return

}


report_disk_space () { return

}


report_home_space () { return

}


חתול << _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 () { return

}


report_disk_space () { return

}


report_home_space () { return

}


חתול << _EOF_

$TITLE

$TITLE

$TIMESTAMP

$(report_uptime)

$(report_disk_space)

$(report_home_space)


_EOF_

_EOF_


שמות פונקציות מעטפת עוקבים אחר אותם כללים כמו משתנים. פונקציה חייבת להכיל לפחות פקודה אחת. ה לַחֲזוֹר הפקודה (שהיא אופציונלית) עונה על הדרישה.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: