תכנות בבאש - חלק 2

חלק שני זה מיני הדרכה תכנות ב לְהַכּוֹת, שם אנו לומדים להשתמש מחזורים וכלים אחרים שיעזרו לנו לשפר את הפונקציונליות של שלנו סקריפטים.

ה- If מותנה

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

אם [תנאי]; ואז אליף פקודות [תנאי]; ואז פקודות אחרות; פקודות fi

דוגמה מוצגת ליד הלולאה For בקטע המתאים לה.

מחזורים

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

בעוד ש- CONDITION / COMMAND מבצעים פקודות

דוגמה: לוח כפל של מספר

#! / bin / bash X = 1 הד "הזן מספר ולחץ על ENTER" קרא M # הלולאה שולטת ש- X קטן או שווה ל- 10 בעוד [$ X –le 10] בצע # In R אנו מאחסנים את הכפל של X על ידי MR = $ [X * M] # הכפל זה מודפס על הד המסך "$ M * $ X = $ R" # עם let, אנו מגדילים את ערך ה- X ביחידה אחת בואו X = $ X + 1 נעשה

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

עבור VARIABLE ב- ELEMENTS מבצעים פקודות

דוגמה: תוכנית שמעתיקה קובץ מתיקיה אחת לאחרת, ומחליפה קובץ ישן.

# / bin / bash # אנו מקימים ספריות מקור ויעד ORIGIN = / home / user / הורדות DESTINATION = / home / user / Documents # אנו ממקמים את עצמנו בתקליטור המקור $ ORIGIN # מכל הקבצים, אנחנו רק רוצים את זה הוא # call FILE for FILE ב- * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f מסנן לנו קבצים רגילים, מכיוון שספריות # לא טובות עבורנו. –לא מסנן # קבצים “חדשים” יותר מאלה שנמצאו בתיקיית היעד אם [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; ואז מהדהד "העתקת $ FILE ..." # אנו מעתיקים את הקובץ עם cp cp $ FILE $ ARCH-DESTINATION fi done # אנחנו cd כדי לצאת מתיקיית המקור cd

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

# / bin / bash # מספר אקראי נוצר מ -1 עד 10, הוא # נשמר ב- RANDOM RANDOM = $ [$ RANDOM% 10 + 1] ואילו [1] לעשות הד –נ "הזן מספר:" קרא NUM # השווה אם המספר שבחר המשתמש הוא שווה ל- RANDOM; זכור להשתמש ב- $ כדי להעריך את # הערכים של המשתנים ולא את שמותיהם אם ["$ NUM - שווה ערך" $ RANDOM "]; ואז מהדהד "הבנתם נכון!" #break מאפשר לסיים את הלולאה בזמן הפסקה # אם המספר נמוך מ- RANDOM elif [“$ NUM –gt“ $ RANDOM ”]; ואז הד "זה קטן יותר" "אם לא, הוא גדול יותר מ- RANDOM אחר מהדהד" זה גדול יותר "נעשה

3. עד: די דומה במבנהו ל- While, אלא שהקוד תמיד מבוצע בזמן שהערכת התנאי היא שלילית, כלומר התוכנית ממשיכה לבצע "עד שהמצב מתרחש"

עד ש- CONDITION / COMMAND מבצעים פקודות

דוגמה: הדפיסו את המספרים 10-20 בסדר יורד

#! / bin / bash CONT = 20 # כל עוד הדלפק קטן מ- 10 (-lt, "נמוך יותר מ-") הקוד מבוצע עד [$ CONT -lt 10]; לעשות הד "COUNTER $ CONT" # A CONT מופחת על ידי יחידה בוא CONT- = 1 נעשה

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

בחר VARIABLE ברשימת הפקודות שבוצעו

דוגמה: תן למשתמש את היכולת להמשיך או לסיים את הסקריפט.

#! / bin / bash #item הוא משתנה המגיב למה שהמשתמש # בוחר, המשך וסיום הם # האפשרויות העומדות בפניו, אם כי ניתן להוסיף אפשרויות אחרות # פריט נוסף בחר ב- Continue Finish עשה # אם המשתמש בוחר לסיים את התוכנית, ואז עם הפסקה אנו יוצאים מהמחזור. אם [$ item = "Finish"]; ואז לשבור את הפי
תודה לך חואן קרלוס אורטיז!

הוסף כמקור מועדף