כיצד לכתוב הצהרת IF Bash (תנאים)

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

Bash הצהרת If בסיסית

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

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

בדוגמה זו, המשתנה לספור מציין תנאי המשמש כחלק מה- אם הַצהָרָה. לפני ה אם ההצהרה מבוצעת, המשתנה לספור מוקצה לו הערך 5. ה אם הצהרה לאחר מכן בודקת אם הערך של לספור הוא 5. אם זה המקרה, ההצהרה בין מילות המפתח לאחר מכן ו fi מוצאים להורג. אחרת, כל הצהרות בעקבות ה אם ההצהרה מבוצעות.

מילת המפתח fi הוא אם מאוית לאחור. שפת ה-bash scripting משתמשת במוסכמה זו כדי לסמן את סופו של ביטוי מורכב, כגון an אם הצהרה או מקרה הַצהָרָה.

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

הצהרת Bash If עם Else

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

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

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

הצהרת Bash If עם Elif

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

אם [ $count == 5 ]
לאחר מכן
הד "הספירה היא חמש"
elif [ $count == 6 ]
לאחר מכן
הד "הספירה היא שש"
אַחֵר
הד "אף אחד מהאמור לעיל"
fi

אם לספור הוא 5, המערכת מדפיסה הספירה היא חמש. אם לספור לא 5 אבל 6, המערכת מדפיסה הספירה היא שש. אם זה לא אחד מהם 5 ולא 6, המערכת מדפיסה אף אחד מן הנזכרים מעלה.

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

אם [ $count == 5 ]
לאחר מכן
הד "הספירה היא חמש"
elif [ $count == 6 ]
לאחר מכן
הד "הספירה היא שש"
elif [ $count == 7 ]
לאחר מכן
הד "הספירה היא שבע"
elif [ $count == 8 ]
לאחר מכן
הד "הספירה היא שמונה"
elif [ $count == 9 ]
לאחר מכן
הד "הספירה היא תשע"
אַחֵר
הד "אף אחד מהאמור לעיל"
fi
הצהרת מקרה Bash

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

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

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

ספירה=1
בוצע=0
בעוד [ $count -le 9 ]
לַעֲשׂוֹת
שינה 1
(( ספירה++ ))
אם [ $count == 5 ]
לאחר מכן
לְהַמשִׁיך
fi
הד "$count"
בוצע
הד הסתיים

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

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

מעטפת ה-bash מספקת מבני תכנות אחרים, כגון for-loops, while-loops, ו ביטויים אריתמטיים.