Os humildes serão exaltados (Homilia Diária.1619: Sábado da 30.ª Semana do Tempo Comum)
תוכן עניינים:
- מפעילי השוואה
- בדוק אם מחרוזת מכילה מחרוזת
- בדוק אם מחרוזת ריקה
- השוואת מיתרים עם מפעיל המקרים
- השוואה לקסיקוגרפית
- סיכום
כשאתה כותב סקריפטים של Bash, תצטרך לעתים קרובות להשוות בין שני מחרוזות כדי לבדוק אם הם שווים או לא. שני מחרוזות שווים כאשר יש להם אותו אורך ומכילים אותו רצף של תווים.
מדריך זה מתאר כיצד להשוות מחרוזות בבאש.
מפעילי השוואה
מפעילי השוואה הם מפעילים שמשווים ערכים ומחזירים אמת או שקר. כשמשווים מחרוזות בבאש תוכלו להשתמש במפעילים הבאים:
-
string1 = string2
ו-string1 == string2
- מפעיל השוויון חוזר נכון אם האופרנדים שווים.- השתמש במפעיל
=
test
; then echo "Strings are equal." else echo "Strings are not equal." fi
; then echo "Strings are equal." else echo "Strings are not equal." fi
כאשר הסקריפט מופעל הוא ידפיס את הפלט הבא.
Strings are equal.
להלן סקריפט נוסף שלוקח את הקלט מהמשתמש ומשווה את המחרוזות הנתונות. בדוגמה זו אנו נשתמש
]; then echo "Strings are equal." else echo "Strings are not equal." fi
]; then echo "Strings are equal." else echo "Strings are not equal." fi
הפעל את הסקריפט והזן את המיתרים כשתתבקש:
Enter first string: Linuxize Enter second string: Ubuntu Strings are not equal.
אתה יכול גם להשתמש בלוגי ו-
&&
ו- או||
להשוות מחרוזות:] && echo "Equal" || echo "Not equal"
בדוק אם מחרוזת מכילה מחרוזת
ישנן מספר דרכים לבדוק אם מחרוזת מכילה מחרוזת חלופית.
גישה אחת היא להשתמש בהקפת המחרוזת בסמלי כוכבית
*
שמשמעותה תואמת את כל התווים.#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
התסריט מהדהד את הדברים הבאים:
It's there.
אפשרות נוספת היא להשתמש במפעיל regex
=~
כמוצג להלן:#!/bin/bash VAR='GNU/Linux is an operating system' if]; then echo "It's there." fi
התקופה שאחריה כוכבית
.*
תואמת אפס או יותר מתרחשת בכל תו פרט לדמות חדשה.בדוק אם מחרוזת ריקה
לעיתים קרובות תצטרך גם לבדוק אם משתנה הוא מחרוזת ריקה או לא. אתה יכול לעשות זאת על ידי שימוש במפעילי
-n
ו--z
.#!/bin/bash VAR='' if]; then echo "String is empty." fi
String is empty.
#!/bin/bash VAR='Linuxize' if]; then echo "String is not empty." fi
השוואת מיתרים עם מפעיל המקרים
במקום להשתמש במפעילי הבדיקה תוכלו גם להשתמש בכתב התביעה כדי להשוות מחרוזות:
#!/bin/bash VAR="Arch Linux" case $VAR in "Arch Linux") echo -n "Linuxize matched";; Fedora | CentOS) echo -n "Red Hat";; esac
השוואה לקסיקוגרפית
השוואה לקסיקוגרפית היא פעולה בה משווים בין שני מחרוזות אלפביתית על ידי השוואה בין התווים במחרוזת ברצף משמאל לימין. לעתים רחוקות משתמשים בהשוואה מסוג זה.
התסריטים הבאים משווים בין שני מיתרים בלקסיקוגרפית:
#!/bin/bash VAR1="Linuxize" VAR2="Ubuntu" if]; then echo "${VAR1} is lexicographically greater then ${VAR2}." elif]; then echo "${VAR2} is lexicographically greater than ${VAR1}." else echo "Strings are equal" fi
התסריט יביא את הדברים הבאים:
Ubuntu is lexicographically greater than Linuxize.
סיכום
השוואת מחרוזת היא אחת הפעולות הבסיסיות והמשתמשות ביותר בתסריטים של באש. לאחר קריאת הדרכה זו, תהיה לך הבנה טובה כיצד להשוות מחרוזות בבאש. תוכלו גם לבדוק את המדריך שלנו בנושא שרשור למחרוזות.
מסוף bash
- השתמש במפעיל
כיצד להשוות שני מסמכים ב- ms word 2007 או 2010
למד כיצד להשוות במהירות שני מסמכים ב- MS Word 2007 או 2010.
כיצד להשוות מעבד, מעבד, ו- ssds לפני הקנייה
למד כיצד להשוות מעבד, GPU ו- SSD לפני הקנייה. אנו עוזרים לכם לעשות את הבחירה הנכונה.
כיצד לקרוא קובץ שורה אחר שורה בבאש
כשאתה כותב סקריפטים של באש, אתה תמצא את עצמך לפעמים במצבים שאתה צריך לקרוא קובץ שורה אחר שורה. לדוגמה, יתכן שיש לך קובץ טקסט המכיל נתונים שצריך לעבד על ידי הסקריפט.