פריצה מלולאה
bash מספק שתי פקודות מובנות שניתן להשתמש בהן כדי לשלוט על זרימת התוכנית בתוך לולאות. הפקודה break מסיימת מיד לולאה, ושליטה בתוכנית מתחדשת עם ההצהרה הבאה אחרי הלולאה. הפקודה המשך גורמת לדילוג על שאר הלולאה, והשליטה בתוכנית מתחדשת עם האיטרציה הבאה של הלולאה. כאן אנו רואים גרסה של תוכנית while-menu הכוללת גם הפסקה וגם המשך:
#! / bin / bash
# while-menu2: תוכנית מידע מערכת מבוססת תפריט DELAY=3 # מספר שניות להצגת תוצאות
בעוד נכון; לַעֲשׂוֹת
ברור
חתול <<- _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/*
אחר
#! / bin / bash
# while-menu2: תוכנית מידע מערכת מבוססת תפריט DELAY=3 # מספר שניות להצגת תוצאות
בעוד נכון; לַעֲשׂוֹת
ברור
חתול <<- _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
if [[ $REPLY == 0 ]]; ואז לשבור
fi
אחר
echo "ערך לא חוקי." לישון $DELAY
פי בוצע
echo "התוכנית הופסקה."
echo "ניצול שטח ביתי ($USER)" du -sh $HOME
fi
לישון $DELAY
להמשיך
fi
if [[ $REPLY == 0 ]]; ואז לשבור
fi
אחר
echo "ערך לא חוקי." לישון $DELAY
פי בוצע
echo "התוכנית הופסקה."
בגרסה זו של התסריט, הגדרנו an לולאה אין סופית (כזה שלעולם לא מסתיים מעצמו) על ידי שימוש ב- נָכוֹן פקודה לספק סטטוס יציאה בזמן. מאז נָכוֹן תמיד ייצא עם סטטוס יציאה של אפס, הלולאה לא תיגמר לעולם. זוהי טכניקת סקריפטים נפוצה באופן מפתיע. מכיוון שהלולאה לעולם לא תסתיים מעצמה, זה תלוי במתכנת לספק דרך כלשהי לפרוץ מהלולאה כשהזמן מתאים. בתסריט הזה, ה לשבור הפקודה משמשת ליציאה מהלולאה כאשר הבחירה "0" נבחרת. ה המשך הפקודה נכללה בסוף אפשרויות הסקריפט האחרות כדי לאפשר ביצוע יעיל יותר. על ידי שימוש ב להמשיך, הסקריפט ידלג על קוד שאינו נחוץ כאשר מזוהה בחירה. לדוגמה, אם הבחירה "1" נבחרה ומזוהה, אין סיבה לבדוק את הבחירות האחרות.