OnWorks Linux ו-Windows Online WorkStations

לוגו

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

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

משתנים מקומיים

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

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

תמונה

להלן סקריפט לדוגמה המדגים כיצד מגדירים ומשתנים מקומיים משתמשים בהם:


#! / bin / bash


# local-vars: סקריפט להדגמת משתנים מקומיים

#! / bin / bash


# local-vars: סקריפט להדגמת משתנים מקומיים


foo=0

# משתנה גלובלי foo

foo=0


funct_1 () {

foo מקומי # משתנה foo מקומי ל-funct_1 foo=1

echo "funct_1: foo = $foo"

}


funct_2 () {

foo מקומי # משתנה foo מקומי ל-funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "global: foo = $foo" funct_1

funct_1 () {

foo מקומי # משתנה foo מקומי ל-funct_1 foo=1

echo "funct_1: foo = $foo"

}


funct_2 () {

foo מקומי # משתנה foo מקומי ל-funct_2 foo=2

echo "funct_2: foo = $foo"

}


echo "global: foo = $foo" funct_1

משתנים מקומיים


echo "global: foo = $foo" funct_2

echo "global: foo = $foo"

echo "global: foo = $foo" funct_2

echo "global: foo = $foo"


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



[me@linuxbox ~]$ local-vars

גלובלי: foo = 0 funct_1: foo = 1 גלובלי: foo = 0 funct_2: foo = 2 גלובלי: foo = 0

[me@linuxbox ~]$ local-vars

גלובלי: foo = 0 funct_1: foo = 1 גלובלי: foo = 0 funct_2: foo = 2 גלובלי: foo = 0


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

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


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