OnWorks Linux ו-Windows Online WorkStations

לוגו

אירוח מקוון בחינם עבור תחנות עבודה

<הקודם | תוכן | הבא>

גרסה מודרנית יותר של מבחן

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

[[ ביטוי ]]

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


מוסיף ביטוי מחרוזת חדש וחשוב:

string1 =~ regex

שמחזיר אמת אם string1 מותאם על ידי הביטוי הרגולרי המורחב regex. זה פותח הרבה אפשרויות לביצוע משימות כמו אימות נתונים. בדוגמה הקודמת שלנו לביטויים שלמים, הסקריפט ייכשל אם הקבוע INT הכיל כל דבר מלבד מספר שלם. הסקריפט צריך דרך לוודא שהקבוע מכיל מספר שלם. באמצעות [[]] עם =~ אופרטור ביטוי מחרוזת, נוכל לשפר את הסקריפט בדרך זו:



#! / bin / bash


# test-integer2: הערכת הערך של מספר שלם.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; לאחר מכן

if [$INT -eq 0]; ואז הד "INT הוא אפס."

אחר

if [$INT -lt 0]; ואז הד "INT הוא שלילי."

אחר

echo "INT הוא חיובי."

fi

if [ $((INT % 2)) -eq 0 ]; ואז הד "INT הוא זוגי."

אחר

echo "INT הוא מוזר."

fi

fi

אחר

echo "INT אינו מספר שלם." >&2 יציאה 1

fi

#! / bin / bash


# test-integer2: הערכת הערך של מספר שלם.


INT=-5


if [[ "$INT" =~ ^-?[0-9]+$ ]]; לאחר מכן

if [$INT -eq 0]; ואז הד "INT הוא אפס."

אחר

if [$INT -lt 0]; ואז הד "INT הוא שלילי."

אחר

echo "INT הוא חיובי."

fi

if [ $((INT % 2)) -eq 0 ]; ואז הד "INT הוא זוגי."

אחר

echo "INT הוא מוזר."

fi

fi

אחר

echo "INT אינו מספר שלם." >&2 יציאה 1

fi


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

תכונה נוספת נוספת של [[]] הוא כי == האופרטור תומך בהתאמת דפוסים באותו אופן שבו הרחבת שם נתיב תומכת. לדוגמה:



[me@linuxbox ~]$ FILE=foo.bar

[me@linuxbox ~]$ FILE=foo.bar

גרסה מודרנית יותר של מבחן


[me@linuxbox ~]$ if [[ $FILE == foo.* ]]; לאחר מכן

> echo "$FILE תואם לתבנית 'foo.*'"

> fi

foo.bar מתאים לדפוס 'foo.*'

[me@linuxbox ~]$ if [[ $FILE == foo.* ]]; לאחר מכן

> echo "$FILE תואם לתבנית 'foo.*'"

> fi

foo.bar מתאים לדפוס 'foo.*'


זה עושה [[]] שימושי להערכת שמות קבצים ונתיבים.


מחשוב ענן מערכת ההפעלה המוביל ב-OnWorks: