משתנה מכונה לעתים קרובות תיבה המכילה שם ואת התוכן. פקודה פשוטה, למשל, 'echo Hello $Var_Name' תדפיס 'Hello...the value of the variable as defined'. Bash לא ידפיס דבר אם התיבה ריקה או לא נוצרה. לכן חשוב לוודא אם משתנה מוגדר כראוי או לא בזמן יצירת כל סקריפט bash.
ניתן לסווג משתנים לשני חלקים:
משתנים שנוצרו או מאותחלים כהלכה, ידועים בתור משתנים מוגדרים. אלה עשויים להיות בעלי ערך אפס או מחרוזת ריקה.
משתנים שלעולם לא נוצרו או מאותחלים, ידועים בתור משתנים לא מוגדרים.
כדי לאשר אם משתנה מוגדר או לא ב-Bash Scripting, אנחנו יכולים להשתמש -v var או -z ${var} אפשרויות כביטוי עם השילוב של פקודה מותנית 'אם'.
תחביר
להלן התחבירים של ביטוי בוליאני שניתן להשתמש בהם כדי לבדוק אם המשתנה מוגדר:
[[ -v Variable_Name ]] [[ -z Variable_Name ]]
הביטוי הבוליאני מחזיר 'True' אם המשתנה מוגדר ו'False' אם המשתנה לא מוגדר.
string tokenizer java
להלן הדוגמאות כדי לבדוק אם משתנה מוגדר או לא:
שימוש באפשרות -v
#!/bin/bash #Script to check whether a variable is set or not using -v option A=100 #A: variable is set. if [[ -v A ]]; then echo 'Variable having name 'A' is already set.' else echo 'Variable having name 'A' is not set.' fi #B: variable is not set if [[ -v B ]]; then echo 'Variable having name 'B' is already set.' else echo 'Variable having name 'B' is not set.' fi
תְפוּקָה
כאן, משתנה 'A' מוגדר ומוקצה לו ערך של 100 ומכאן נחשב כ'משתנה מוגדר'. עבור משתנה 'B', לא הגדרנו או הקצבנו שום ערך. כתוצאה מכך, המשתנה 'B' אינו נחשב כ'משתנה מוגדר'.
שימוש באפשרות -z
#!/bin/bash #Script to check whether a variable is set or not using -z option A=100 #A: variable is set. if [[ -z ${A} ]]; then echo 'Variable having name 'A' is not set.' else echo 'Variable having name 'A' is already set.' fi #B: variable is not set if [[ -z ${B} ]]; then echo 'Variable having name 'B' is not set.' else echo 'Variable having name 'B' is already set.' fi
תְפוּקָה
הערה:יש הבדל בין משתנה לא מוגדר למשתנה עם ערך null.
בדוק את הדוגמה הבאה המדגימה שהמשתנה עם ערך null יכול להיות משתנה מוגדר.
דוגמא
VAR='' #VAR is set if [ -z ${VAR+x} ]; then echo ''VAR' is unset'; else echo ''VAR' is set, its content is '$VAR''; fi #Var is not set if [ -z ${Var+x} ]; then echo ''Var' is unset'; else echo ''Var' is set, its content is '$Var''; fi
תְפוּקָה
אלו הן השיטות הנפוצות שניתן להשתמש בהן כדי לבדוק אם משתנה מוגדר או לא.
np std