OnWorks Linux ו-Windows Online WorkStations

לוגו

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

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

המשך לרוץ סקריפטים

בזמן פיתוח התוכנית שלנו, כדאי לשמור את התוכנית במצב בר הפעלה. על ידי ביצוע זה, ובדיקות תכופות, אנו יכולים לזהות שגיאות בשלב מוקדם בתהליך הפיתוח. זה יקל הרבה יותר על בעיות איתור באגים. לדוגמה, אם אנחנו מפעילים את התוכנית, מבצעים שינוי קטן, ואז נפעיל את התוכנית שוב ונמצא בעיה, סביר מאוד שהשינוי האחרון הוא מקור הבעיה. על ידי הוספת הפונקציות הריקות, נקרא תלים בדיבור מתכנת, אנו יכולים לאמת את הזרימה ההגיונית של התוכנית שלנו בשלב מוקדם. בעת בניית בדל, כדאי לכלול משהו שמספק משוב למתכנת, שמראה שהזרימה הלוגית מתבצעת. אם נסתכל על הפלט של התסריט שלנו עכשיו:



[me@linuxbox ~]$ sys_info_page

דוח מידע מערכת עבור twin2

[me@linuxbox ~]$ sys_info_page

דוח מידע מערכת עבור twin2


דוח מידע מערכת עבור לינוקס

נוצר 03/19/2009 04:02:10 PM EDT, על ידי


דוח מידע מערכת עבור לינוקס

נוצר 03/19/2009 04:02:10 PM EDT, על ידי



אנחנו רואים שיש כמה שורות ריקות בפלט שלנו אחרי חותמת הזמן, אבל אנחנו לא יכולים להיות בטוחים בסיבת התוצאה. אם נשנה את הפונקציות כדי לכלול קצת משוב:



report_uptime () {

echo "הפונקציה report_uptime בוצעה."

לַחֲזוֹר

}


report_disk_space () {

echo "הפונקציה report_disk_space בוצעה."

לַחֲזוֹר

}


report_home_space () {

echo "הפונקציה report_home_space בוצעה."

לַחֲזוֹר

}

report_uptime () {

echo "הפונקציה report_uptime בוצעה."

לַחֲזוֹר

}


report_disk_space () {

echo "הפונקציה report_disk_space בוצעה."

לַחֲזוֹר

}


report_home_space () {

echo "הפונקציה report_home_space בוצעה."

לַחֲזוֹר

}


והפעל שוב את הסקריפט:



[me@linuxbox ~]$ sys_info_page

דוח מידע מערכת עבור לינוקס

דוח מידע מערכת עבור לינוקס

נוצר 03/20/2009 05:17:26 AM EDT, על ידי הפונקציה report_uptime בוצעה.

הפונקציה report_disk_space בוצעה. הפונקציה report_home_space בוצעה.

[me@linuxbox ~]$ sys_info_page

דוח מידע מערכת עבור לינוקס

דוח מידע מערכת עבור לינוקס

נוצר 03/20/2009 05:17:26 AM EDT, על ידי הפונקציה report_uptime בוצעה.

הפונקציה report_disk_space בוצעה. הפונקציה report_home_space בוצעה.

המשך לרוץ סקריפטים


אנו רואים כעת שלמעשה, שלוש הפונקציות שלנו מבוצעות.

עם מסגרת הפונקציה שלנו במקום ופועלת, הגיע הזמן להגדיר חלק מקוד הפונקציה. קודם ה report_uptime פוּנקצִיָה:


report_uptime () {

חתול <<- _EOF_

רציף של מערכת

$(זמן פעילות)

_EOF_

לַחֲזוֹר

}

report_uptime () {

חתול <<- _EOF_

רציף של מערכת

$(זמן פעילות)

_EOF_

לַחֲזוֹר

}


זה די פשוט. אנו משתמשים במסמך כאן כדי להוציא כותרת מקטע ואת הפלט של זמן פעולה תקין פיקוד, מוקף ב תגים כדי לשמר את העיצוב של הפקודה. ה report_disk_space הפונקציה דומה:


report_disk_space () {

חתול <<- _EOF_

ניצול שטח דיסק

$(df -h)

_EOF_

לַחֲזוֹר

}

report_disk_space () {

חתול <<- _EOF_

ניצול שטח דיסק

$(df -h)

_EOF_

לַחֲזוֹר

}


פונקציה זו משתמשת ב- df-h פקודה כדי לקבוע את כמות שטח הדיסק. לבסוף, נבנה את report_home_space פוּנקצִיָה:


report_home_space () {

חתול <<- _EOF_

ניצול שטח ביתי

$(du -sh /home/*)

_EOF_

לַחֲזוֹר

}

report_home_space () {

חתול <<- _EOF_

ניצול שטח ביתי

$(du -sh /home/*)

_EOF_

לַחֲזוֹר

}


אנו משתמשים du פקודה עם אפשרויות לביצוע משימה זו. עם זאת, זה לא פתרון מלא לבעיה. אמנם זה יעבוד על מערכות מסוימות (אובונטו, למשל), זה לא יעבוד על אחרות. הסיבה היא שמערכות רבות קובעות את ההרשאות של ספריות ביתיות כדי למנוע מהן להיות קריאות בעולם, וזה אמצעי אבטחה סביר. במערכות אלו, ה report_home_space תפקוד, כפי שנכתב, יהיה


תמונה

עובד רק אם הסקריפט שלנו מופעל עם הרשאות משתמש-על. פתרון טוב יותר יהיה שהסקריפט יתאים את התנהגותו בהתאם להרשאות המשתמש. נעמוד על זה בפרק הבא.


פונקציות מעטפת בקובץ ה-bashrc שלך

פונקציות מעטפת מהוות תחליפים מצוינים לכינויים, והן למעשה השיטה המועדפת ליצירת פקודות קטנות לשימוש אישי. כינויים מוגבלים מאוד בסוג הפקודות ותכונות המעטפת שהם תומכים בהם, בעוד שפונקציות המעטפת מאפשרות כל דבר שניתן לכתוב בסקריפט. לדוגמה, אם אהבנו את report_disk_space פונקציית shell שפיתחנו עבור הסקריפט שלנו, נוכל ליצור פונקציה דומה בשם ds בשביל שלנו .bashrc קובץ:

ds () {

echo "ניצול שטח דיסק עבור $HOSTNAME" df -h

}


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