מדריך למתחילים כדי BASH - השוואת דברים

01 מתוך 08

מדריך למתחילים כדי BASH - השוואת דברים

BASH הדרכה - השוואת מיתרים.

בחלק הקודם של המדריך BASH הסתכלנו הצהרות מותנה .

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

התמונה לעיל מראה את הדוגמה הראשונה במדריך זה של השבוע:

#! / bin / bash

name1 = "gary"
name2 = "bob"

אם ["$ name1" = "$ name2"]
לאחר מכן
הד "שמות התאמה"
אַחֵר
הד "השמות אינם תואמים"
Fi


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

כל התסריט עושה הוא להשוות את הערך של $ name1 ו $ name2 ואם הם להתאים פלט מחרוזת "שמות שמות" ואם הם לא פלט את המחרוזת "השמות אינם תואמים".

המרכאות סביב המשתנים $ name1 ו- $ 2 הן חשובות משום שאם הערך של אחת מהן לא נקבע אזי הסקריפט ימשיך לפעול.

לדוגמה, אם $ name1 מעולם לא הוגדר אז אתה תהיה משווה "" עם "בוב". ללא המרכאות אתה תישאר עם = "בוב" אשר נכשל בבירור.

ניתן גם להשתמש ב! = Nation כדי להגדיר לא שווה ל:

אם ["$ name1"! = "$ name2"]

02 מתוך 08

מדריך למתחילים כדי BASH - השוואת מחרוזות

BASH הדרכה - השוואת מיתרים.

בדוגמה לעיל הבדיקה משווה את שתי מחרוזות אותו שואל את השאלה האם גארי לבוא לפני בוב באלפבית?

ברור שהתשובה היא לא.

הסקריפט מציג את המפעיל פחות (<). כמו מפעיל פחות מ משמש גם עבור ניתוב מחדש אתה צריך לברוח עם קו נטוי (\) עבור זה אומר פחות מאשר למה את התסריט לעיל השוותי "$ name1" \ "$ $ name2".

ההפך של פחות מ ברור יותר מאשר. במקום להשתמש ב- .

לדוגמה

אם ["$ name1" \> "$ name2"]

03 מתוך 08

מדריך למתחילים כדי BASH - השוואת מחרוזות

BASH הדרכה - השוואת מיתרים.

אם ברצונך לבדוק אם למשתנה יש ערך תוכל להשתמש במבחן הבא:

אם [-n $ name2]

בסקריפט לעיל בדקתי אם $ name2 כבר נתון ערך ואם זה לא את ההודעה "אין בוב, מעולם לא היה מופיע בוב".

04 מתוך 08

מדריך למתחילים כדי BASH - השוואת מחרוזות

BASH הדרכה - השוואת מיתרים.

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

לדוגמה:

name1 = ""

כדי לבדוק אם למשתנה יש ערך או לא (כלומר, יש אורך של אפס) השתמש -z כדלקמן:

אם [-z $ name1]

בתסריט לעיל יש להגדיר $ name1 למחרוזת אורך אפס ולאחר מכן להשוות אותו באמצעות -z. אם $ name1 הוא אפס אורך ההודעה "גארי יש יצא הערב" יוצג.

05 מתוך 08

מדריך למתחילים כדי BASH - השוואת מספרים

BASH הדרכה - השוואת מספרים.

עד כה כל ההשוואות היו עבור מחרוזות. מה לגבי השוואת מספרים?

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

#! / bin / bash

= 4
b = 5

אם [$ a = $ b]
לאחר מכן
הד "4 = 5"
אַחֵר
הד "4 אינו שווה 5"
Fi

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

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

אם [$ a-aq $ b]

06 מתוך 08

מדריך למתחילים כדי BASH - השוואת מספרים

BASH הדרכה - השוואת מספרים.

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

דרך טובה יותר להשוות מספרים היא להשתמש בסימון הבא:

לדוגמה:

אם [$ a -lt $ b]

אם [$ a -le $ b]

אם [$ a -ge $ b]

אם [$ a -gt $ b]

07 מתוך 08

מדריך למתחילים כדי BASH - השוואת מספרים

BASH הדרכה - השוואת מספרים.

לבסוף, עבור מדריך זה, אם ברצונכם לבדוק אם שני מספרים שונים זה מזה, תוכלו להשתמש במפעילים הפחות מ-או יותר ביחד (<>) או ב- -ne כדלקמן:

אם [$ a <> $ b]

אם [$ a -ne $ b]

08 מתוך 08

מדריך למתחילים לבאש - מפעילי השוואה - סיכום

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

בחלק הבא של המדריך אני אעבור אריתמטיקה.