Command Substitution @ RHEL 6

post details top
Jan 4th, 2012
post details top

Command Substitution – Backquotes/Backticks `…` and the $(…) form

Command Substitution זו היכולת של הshell להריץ פקודה ברקע (באמצעות child process)

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

יכולת זו מאפשרת למשתמש יכולות נרחבות בשילוב של פקודה אחת עם פקודה אחרת,

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

דוגמה להרצת פקודה תוך שימוש בCommand Substitution אל מול הרצתה ללא שימוש ביכולת זו:

ראשית, נגדיר משתנה ללא שימוש בCS:

dollar=date

נבחן את ערכו כפי שפורש ע”י המעטפת ע”י הרצת הפקודה:

echo $dollar

הפלט:

date

שנית, נגדיר משתנה זה שוב, רק שהפעם נעשה זאת תוך שימוש בCS:

dollar=`date`

: dollar=`date` טיפ: צורת כתיבה נוספת לפקודה

dollar=$(date)

 נבחן את ערכו כפי שפורש ע”י המעטפת ע”י הרצת הפקודה:

echo $dollar

:הפלט

Mon, Sep…

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



2 Comments

  • יוסי

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

    • מורן אלקובי

      שלום יוסי וברוך הבא !
      אשמח להראות שימושים בפונקציונאלית זו.
      ניקח לדוגמא מקרה בו יש ברצונך ליצור קובץ המכיל את התאריך והשעה הנוכחיים (פלט שמתקבל למסך ע” הרצת הפקודה date).
      אנו יודעים שהפקודה echo מאפשרת לנו “להדהד” טקסט לתוך קובץ, ועל כן, המוטיבציה תהיה לחפש דרך לשלב בין היכולת להרצת הפקודה לבין “הדהוד” הפלט לתוך הקובץ.
      משמע, בצורה נאיבית יכולנו לחשוב להריץ הפקודה באופן הבא:
      echo date > datefile.txt
      אך מן הסתם שמה שיבוצע יהיה יצירת קובץ בשם datefile.txt עם תוכן המילה date.
      ובדיוק כאן בא לידי ביטוי השימוש ב command substitution.
      זוהי הנקודה בה אנו מבינים שיש עלינו לבצע את ההפרדה מתי אנו רוצים להתייחס למילה date בצורה מילולית גרידא, ומתי אנו רוצים להתייחס אליה כפקודה.
      במקרה שלנו, כמובן שיש ברצוננו להתייחס למילה date כפקודה, ועל כן, הרצת הפקודה באופן הבא יספק עבורנו את מבוקשנו:
      echo `date` > datefile.txt
      כאן יווצר עבורנו קובץ עם תוכן במבנה Wed Jan 11 14:00:00 IST 2012.
      מקווה שעזרתי ואשמח לענות על שאלות נוספות במקרה ויתעוררו!
      מורן אלקובי.

הגב למאמר

Your email address will not be published. Required fields are marked *

עקבו אחרי

הזינו כתובתכם לקבלת עדכונים במייל

עמוד הפייסבוק – הצטרף עכשיו

חיפוש פוסט לפי תאריך

December 2017
S M T W T F S
« Sep    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

תגיות

Moran Alkobi | 2nd Chance | מורן אלקובי | הזדמנות שנייה located at , he-IL / en-US, . Reviewed by 152 students rated: 4.7 / 5