OnWorks Linux ו-Windows Online WorkStations

לוגו

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

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

בזמן

bash יכול לבטא רעיון דומה. נניח שרצינו להציג חמישה מספרים ברצף-


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


#! / bin / bash


# while-count: הצג סדרה של מספרים count=1

בעוד [[ $count -le 5 ]]; לעשות הד $count count=$((ספירה + 1))

עשה

הד "נגמר".

#! / bin / bash


# while-count: הצג סדרה של מספרים count=1

בעוד [[ $count -le 5 ]]; לעשות הד $count count=$((ספירה + 1))

עשה

הד "נגמר".


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



[me@linuxbox ~]$ בעוד-ספירה

1

2

3

4

5

סיים.

[me@linuxbox ~]$ בעוד-ספירה

1

2

3

4

5

סיים.


התחביר של בזמן הפקודה היא:

בזמן פקודות; לַעֲשׂוֹת פקודות; בוצע

כמו if, בזמן מעריך את מצב היציאה של רשימת פקודות. כל עוד מצב היציאה הוא אפס, הוא מבצע את הפקודות בתוך הלולאה. בסקריפט למעלה, המשתנה לספור נוצר ומוקצה לו ערך התחלתי של 1. The בזמן הפקודה מעריכה את מצב היציאה של [[]] פקודה מורכבת. כל עוד [[]] הפקודה מחזירה סטטוס יציאה של אפס, הפקודות בתוך הלולאה מבוצעות. בסוף כל מחזור, ה [[]] הפקודה חוזרת על עצמה. לאחר חמש חזרות של הלולאה, הערך של לספור גדל ל-6, ה [[]] הפקודה כבר לא מחזירה מצב יציאה של אפס והלולאה מסתיימת. התוכנית ממשיכה עם ההצהרה הבאה בעקבות הלולאה.

אנחנו יכולים להשתמש ב- תוך לולאה לשפר את תפריט קריאה תוכנית מהפרק הקודם:


#! / bin / bash


# while-menu: תוכנית מידע מערכת מונעת בתפריט

#! / bin / bash


# while-menu: תוכנית מידע מערכת מונעת בתפריט


DELAY=3 # מספר שניות להצגת תוצאות


בעוד [[ $REPLY != 0 ]]; לַעֲשׂוֹת

ברור

חתול <<- _EOF_

בבקשה תבחר:


1. הצג מידע מערכת

2. הצג שטח דיסק

3. הצג את ניצול שטח הבית

0. עזוב


_EOF_

קרא -p "הזן בחירה [0-3] > "


if [[ $REPLY =~ ^[0-3]$ ]]; אז אם [[ $REPLY == 1 ]]; לאחר מכן

echo זמן פעילות של "Hostname: $HOSTNAME".

לישון $DELAY

fi

if [[ $REPLY == 2 ]]; ואז df -h

לישון $DELAY

fi

if [[ $REPLY == 3 ]]; לאחר מכן

if [[ $(id -u) -eq 0 ]]; לאחר מכן

echo "ניצול שטח ביתי (כל המשתמשים)" du -sh /home/*

אחר

echo "ניצול שטח ביתי ($USER)" du -sh $HOME

fi

לישון $DELAY

fi

אחר

echo "ערך לא חוקי."

לישון $DELAY

fi

עשה

echo "התוכנית הופסקה."

DELAY=3 # מספר שניות להצגת תוצאות


בעוד [[ $REPLY != 0 ]]; לַעֲשׂוֹת

ברור

חתול <<- _EOF_

בבקשה תבחר:


1. הצג מידע מערכת

2. הצג שטח דיסק

3. הצג את ניצול שטח הבית

0. עזוב


_EOF_

קרא -p "הזן בחירה [0-3] > "


if [[ $REPLY =~ ^[0-3]$ ]]; אז אם [[ $REPLY == 1 ]]; לאחר מכן

echo זמן פעילות של "Hostname: $HOSTNAME".

לישון $DELAY

fi

if [[ $REPLY == 2 ]]; ואז df -h

לישון $DELAY

fi

if [[ $REPLY == 3 ]]; לאחר מכן

if [[ $(id -u) -eq 0 ]]; לאחר מכן

echo "ניצול שטח ביתי (כל המשתמשים)" du -sh /home/*

אחר

echo "ניצול שטח ביתי ($USER)" du -sh $HOME

fi

לישון $DELAY

fi

אחר

echo "ערך לא חוקי."

לישון $DELAY

fi

עשה

echo "התוכנית הופסקה."


על ידי סגירת התפריט בלולאת while, אנו יכולים לגרום לתוכנית לחזור על תצוגת התפריט לאחר כל בחירה. הלולאה נמשכת כל עוד תשובה אינו שווה ל-"0" והתפריט מוצג שוב, מה שנותן למשתמש הזדמנות לבצע בחירה נוספת. בסוף כל פעולה, א לִישׁוֹן הפקודה מבוצעת כך שהתוכנית תשהה לכמה שניות כדי לאפשר לראות את תוצאות הבחירה לפני ניקוי המסך והתפריט יוצג מחדש. פַּעַם תשובה שווה ל-"0", המציין את הבחירה "יציאה",


הלולאה מסתיימת והביצוע ממשיך עם השורה הבאה עשה.


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