ייצוא משתנה
חלק מהיחידה יסודות במסלול ה-Terminal של Coddy. שיעור 63 מתוך 82.
כשמגדירים משתנה כמו MY_NAME="Alice", הוא קיים רק במעטפת הנוכחית שלך. אם מריצים סקריפט או מפעילים תוכנית אחרת, המשתנה הזה לא יהיה זמין עבורה. כאן נכנסת לתמונה export.
הפקודה export הופכת משתנה לזמין לכל תהליכי הצאצא, כלומר תוכניות או סקריפטים שהופעלו מהמעטפת הנוכחית שלך יכולים לגשת אליו:
export MY_NAME="Alice"אפשר גם לייצא משתנה קיים:
MY_NAME="Alice"
export MY_NAMEשתי הגישות משיגות את אותה התוצאה. המשתנה הופך לחלק מהסביבה שמועברת לכל פקודה שתריץ לאחר מכן.
כדי לראות את ההבדל, כדאי להריץ סקריפט שמנסה להשתמש ב־$MY_NAME.
בלי ייצוא, הסקריפט לא רואה דבר. עם ייצוא, הסקריפט יכול לגשת לערך.
זו הסיבה שמשתני מערכת כמו PATH ו־HOME מיוצאים כברירת מחדל. הם צריכים להיות זמינים לכל תוכנית שאתה מפעיל.
אפשר לוודא שמשתנה מיוצא על ידי בדיקה אם הוא מופיע בפלט של env:
env | grep MY_NAMEמשתנים שיוצאו עדיין נעלמים כשסוגרים את הטרמינל. בשיעור הבא תלמדו כיצד לשמור משתנים בין הפעלות.
אתגר
קלייצא משתנה בשם PROJECT עם הערך terminal-course, ואז ודא שהוא יוצא באמצעות סינון הפלט של env כך שיוצג רק המשתנה החדש שלך.
אפשר לעשות זאת בשורה אחת באמצעות export כדי להגדיר ולייצא את המשתנה בבת אחת, ואז להעביר את הפלט של env דרך grep כדי למצוא אותו.
הפלט שלך אמור להיות:
PROJECT=terminal-courseרמז: הרץ תחילה
export PROJECT="terminal-course", ואז השתמש ב־env | grep PROJECTכדי לוודא שהוא מופיע בסביבה.
נסו בעצמכם
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7תוכן הקובץ
ראש וזנבספירת מיליםפקודת המיוןפקודת הסינון לכפילויותיסודות grepgrep עם דגליםסיכום – בלש/ית טקסט13יסודות כתיבת סקריפטים ב-Shell
מהו סקריפט Shellיצירה והרצה של סקריפטמשתנים בסקריפטיםקלט משתמש בסקריפטיםמשפט ifלולאת forלולאת whileסיכום – נחשו את המספר2ניווט
הצגת ספריית העבודההצגת קבציםשינוי ספרייהנתיבים מוחלטים לעומת יחסייםספריית הבית וספריית השורשסיכום – מצאו את הדרך8ניתוב מחדש
פלט סטנדרטיכתיבה לקובץ תוך דריסת התוכןהוספה לקובץקלט סטנדרטישגיאה סטנדרטיתסיכום – בונה יומני רישום14פרויקט סקריפט לגיבוי
סקירת הפרויקטקבלת נתיב המקורתרגלו בעצמכם: Terminal אונליין