הרחבות לניהול משתנים ריקים
מספר הרחבות פרמטרים נועדו להתמודד עם משתנים לא קיימים וריקים. הרחבות אלו שימושיות לטיפול בפרמטרים מיקוםיים חסרים והקצאת ערכי ברירת מחדל לפרמטרים.
${פרמטר:-מילה}
If פרמטר אינו מוגדר (כלומר, אינו קיים) או ריק, הרחבה זו מביאה לערך של מילה. אם פרמטר אינו ריק, ההרחבה מביאה לערך של פרמטר.
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:-"substitute value if unset"}
ערך תחליף אם לא מוגדר [me@linuxbox ~]$ echo $foo
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:-"substitute value if unset"}
בָּר
[me@linuxbox ~]$ echo $foo
בָּר
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:-"substitute value if unset"}
ערך תחליף אם לא מוגדר [me@linuxbox ~]$ echo $foo
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:-"substitute value if unset"}
בָּר
[me@linuxbox ~]$ echo $foo
בָּר
${פרמטר:=מילה}
If פרמטר אינו מוגדר או ריק, הרחבה זו מביאה לערך של מילה. בנוסף, הערך של מילה מוקצה ל פרמטר. אם פרמטר אינו ריק, ההרחבה גורמת לערך של פרמטר.
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:="ערך ברירת מחדל אם לא מוגדר"}
ערך ברירת המחדל אם אינו מוגדר [me@linuxbox ~]$ echo $foo ערך ברירת המחדל אם אינו מוגדר [me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:="ערך ברירת מחדל אם לא מוגדר"}
בָּר
[me@linuxbox ~]$ echo $foo
בָּר
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:="ערך ברירת מחדל אם לא מוגדר"}
ערך ברירת המחדל אם אינו מוגדר [me@linuxbox ~]$ echo $foo ערך ברירת המחדל אם אינו מוגדר [me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:="ערך ברירת מחדל אם לא מוגדר"}
בָּר
[me@linuxbox ~]$ echo $foo
בָּר
הערה: לא ניתן להקצות פרמטרים מיקומיים ופרמטרים מיוחדים אחרים בדרך זו.
${פרמטר:?מילה}
If פרמטר אינו מוגדר או ריק, הרחבה זו גורמת לסקריפט לצאת עם שגיאה, ולתוכן של מילה נשלחים לשגיאת תקן. אם פרמטר אינו ריק, ההרחבה מביאה לערך של פרמטר.
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:?"הפרמטר ריק"}
bash: foo: הפרמטר ריק [me@linuxbox ~]$ הד $?
1
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:?"הפרמטר ריק"}
בָּר
[me@linuxbox ~]$ הד $?
0
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:?"הפרמטר ריק"}
bash: foo: הפרמטר ריק [me@linuxbox ~]$ הד $?
1
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:?"הפרמטר ריק"}
בָּר
[me@linuxbox ~]$ הד $?
0
${פרמטר:+מילה}
If פרמטר אינו מוגדר או ריק, ההרחבה לא גורמת לכלום. אם פרמטר אינו ריק, הערך של מילה הוחלף עבור פרמטר; עם זאת, הערך של פרמטר אינו משתנה.
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:+"substitute value if set"}
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:+"substitute value if set"}
[me@linuxbox ~]$ foo=
[me@linuxbox ~]$ echo ${foo:+"substitute value if set"}
[me@linuxbox ~]$ פו = בר
[me@linuxbox ~]$ echo ${foo:+"substitute value if set"}
ערך חלופי אם מוגדר
ערך חלופי אם מוגדר