אנדרואיד

Bash if..else הצהרה

Introduction to Bash Scripting 06 - A Simple "If" Statement

Introduction to Bash Scripting 06 - A Simple "If" Statement

תוכן עניינים:

Anonim

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

במדריך זה, נעביר אותך דרך היסודות של ה- Bash if הצהרות ונראה לך כיצד להשתמש בהם בתסריטים של הקונכיות שלך.

if הצהרה

Bash if מזגנים יכולים להיות בעלי צורות שונות. ההצהרה הבסיסית ביותר if את הטופס הבא:

if TEST-COMMAND then STATEMENTS fi

אמירת if מתחילה במילת המפתח if ואחריה הביטוי המותנה והמילת מפתח then . ההצהרה מסתיימת במילת המפתח fi .

אם ה- TEST-COMMAND מעריך את ה- True , STATEMENTS מוצגות להורג. אם TEST-COMMAND מחזיר False , שום דבר לא קורה, STATEMENTS מתעלמות.

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

בואו נסתכל על סקריפט הדוגמה הבא הבודק אם מספר נתון גדול מ- 10.

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi

שמור את הקוד בקובץ והפעל אותו משורת הפקודה:

bash test.sh

התסריט יבקש ממך להזין מספר. אם לדוגמה, אתה מזין 15, פקודת test תעריך true כיוון ש -15 גדול מ -10, echo בתוך הסעיף then תבוצע.

The variable is greater than 10.

if..else הצהרה

if..else Bash if..else לובשת את הטופס הבא:

if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi

אם ה- TEST-COMMAND מעריך ל- True , ה- STATEMENTS1 יבוצע. אחרת, אם TEST-COMMAND יחזיר False , ה- STATEMENTS2 יבוצע. אתה יכול לקבל סעיף אחד else רק בהצהרה.

בואו להוסיף סעיף else לתסריט לדוגמה הקודם:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi

if..elif..else הצהרה

if..elif..else Bash if..elif..else לובשת את הטופס הבא:

if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi

אם ה- TEST-COMMAND1 מעריך ל- True , ה- STATEMENTS1 יבוצע. אם ה- TEST-COMMAND2 מעריך ל- True , ה- STATEMENTS2 יבוצע. אם אף אחת מפקודות הבדיקה אינה מעריכה ל- True , ה- STATEMENTS2 מבוצע.

באפשרותך לכלול סעיפי elif אחד או יותר בהצהרה. הסעיף else הוא לא חובה.

התנאים נבדקים ברצף. ברגע שחוזר תנאי True התנאים הנותרים לא מבוצעים ובקרת התוכנית עוברת לסוף הצהרות ה- if .

בואו להוסיף סעיף elif לתסריט הקודם:

#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi

מקוננים if הצהרות

Bash מאפשר לך לקנן if אמירות בתוך הצהרות if . אתה יכול למקם מספר if משפט בתוך משפט אחר if משפט.

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

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi

כך ייראה הפלט:

Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number. במקום להשתמש בהצהרות מקוננות if בדרך כלל, יעיל יותר להשתמש בהצהרת המקרה.

תנאים מרובים

מפעילי ה- OR ו- AND ההגיוניים מאפשרים לך להשתמש בתנאים מרובים בהצהרות if .

להלן גרסה נוספת של התסריט להדפסת המספר הגדול ביותר מבין שלושת המספרים. בגירסה זו, במקום ההצהרות המקוננות if אנו נשתמש במפעיל ה- AND ( && ) ההגיוני.

#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi

מפעילי מבחן

ב- Bash, פקודת test לומדת אחת מצורות התחביר שלהלן:

test EXPRESSION]

כדי לשלול את ביטוי הבדיקה השתמש במפעיל NOT ( ! ) ההגיוני. כשמשווים מחרוזות השתמש תמיד בציטוטים בודדים או כפולים כדי להימנע מכל בעיה של פיצול מילים או גלבורים.

להלן כמה מהמפעילים הנפוצים ביותר:

  • -n VAR - נכון אם אורך ה- VAR גדול מאפס. -z VAR - נכון אם ה- VAR ריק. STRING1 = STRING2 - נכון [STRING1 ו- STRING2 שווים. STRING1 != STRING2 - STRING1 ו- STRING2 אמיתיים אינם שווים. INTEGER1 -eq INTEGER2 - נכון INTEGER1 ו- INTEGER2 שווים. INTEGER1 -gt INTEGER2 - INTEGER1 -gt INTEGER2 נכון הוא גדול מ- INTEGER2. INTEGER1 -lt INTEGER2 - INTEGER1 -lt INTEGER2 אמיתי הוא פחות מ- INTEGER2. INTEGER1 -ge INTEGER2 - INTEGER1 -ge INTEGER2 נכון הוא שווה או יותר מ- INTEGER2. INTEGER1 -le INTEGER2 - INTEGER1 -le INTEGER2 אמיתי הוא שווה או פחות מ- INTEGER2. -h FILE - נכון אם הקובץ קיים והוא קישור סמלי. -r FILE - נכון אם הקובץ קיים וקריא. -w FILE - נכון אם הקובץ קיים וניתן לכתיבה. -x FILE - נכון אם הקובץ קיים וניתן להפעלה. -d FILE - נכון אם הקובץ קיים והוא ספרייה. -e FILE - נכון אם הקובץ קיים והוא קובץ, ללא קשר לסוג (צומת, מדריך, שקע וכו '). -f FILE - נכון אם הקובץ קיים והוא קובץ רגיל (לא ספריה או התקן).

סיכום

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

מסוף bash