איך לכתוב IF- דוחות ב- Bash סקריפט

פקודות, תחביר ודוגמאות

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

דוגמה לצורה הפשוטה ביותר של הצהרה אם יהיה:

ספירה = 5 אם [$ count == 5] ולאחר מכן הד "$ count" Fi

בדוגמה זו, המשתנה "ספירה" משמש לציון מצב המשמש כחלק מההצהרה אם. לפני ביצוע ההצהרה, המשתנה "count" מוקצה לערך "5". ההצהרה אם כן בודקת אם הערך של "ספירה" הוא "5". במקרה זה, ההצהרה בין מילות המפתח "ולאחר מכן" ו- "Fi" מבוצעת, אחרת כל ההצהרות הבאות בהצהרת ה- if מבוצעות. מילת המפתח "Fi" היא "אם" מאויתת לאחור. שפת התסריט של באש משתמשת באמנה זו כדי לסמן את הביטוי המורכב, כגון if-statement או case-statement.

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

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

ספירה = 5 אם [$ count == 5] ואז הד "$ לספור" אחר הד "ספירה היא לא 5"

אם התנאי "$ count == 5" נכון, המערכת מדפיסה את הערך של המשתנה "count", אחרת היא מדפיסה את המחרוזת "count is not 5".

אם ברצונך להבדיל בין תנאים מרובים, תוכל להשתמש במילת המפתח "elif", הנגזרת מ"אחר אם ", כמו בדוגמה זו:

אם [$ count == 5] אז הד "לספור הוא חמש" אליף [$ count == 6] ואז הד "לספור הוא שש" אחר הד "אף אחד מן האמור לעיל" Fi

אם "count" הוא "5", המערכת מדפיסה את "count 5". אם "count" אינו "5" אלא "6", המערכת מדפיסה "count is six". אם זה לא "5" ולא "6", המערכת מדפיסה "אף אחד לעיל".

כפי שאתה יכול לנחש, אתה יכול לקבל כל מספר של "אליף" סעיפים. דוגמה עם מספר "אליף" התנאים יהיה:

אם $ [$ count == 5] ואז הד "ספירה היא חמש" אליף [$ count == 6] ואז הד "ספירה היא שש" אליף [$ count == 7] ואז הד "לספור הוא שבע" אליף [$ count = = 8] ולאחר מכן הד "לספור הוא שמונה" אליף [$ count == 9] ואז הד "לספור הוא תשע" אחר הד "אף אחד מן האמור לעיל" Fi

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

במקרה "ספירה $" ב 5) הד "לספור הוא חמש" ;; 6) הד "לספור הוא שש" ;; 7) הד "לספור הוא שבע" ;; 8) הד "לספור הוא שמונה" ;; 9) הד "לספור הוא תשע" ;; *) הד "אף אחד מעל" esac

אם ההצהרות משמשות לעתים קרובות עבור לולאות או בזמן לולאות כמו בדוגמה זו:

ספירה = 1 = 0 כאשר [$ count -le 9] ישנים את השינה 1 ((count ++)) אם [$ count == 5] ולאחר מכן ממשיכים את ההדלקה "$ count"

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

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

את פגז bash מספק מבנים תכנות אחרים, כגון לולאות , תוך לולאות , וביטויים אריתמטיים .