שבב גלזמל רוקמה ןיב לדבהה תא דמל


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

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

.גנבשב תנייצש ןמגרותמ לכב תינכותה תא שיגהל שאבל רמוא הז .תדחוימ תועמשמ שי גנבשל ךא תורעהכ שרפתי שאבב Hash -ה למס .(!#) shebang תארקנש הרושב ליחתמ טפירקס לכ ,ןורקיעב

.ילש ןמגרותמכ bash תא ןייצמ ינאו המגודל תינכות ןלהל

$ cat >> Hello_World.sh
#!/usr/bin/env bash
echo "Hello world"

$ chmod +x Hello_world.sh

.םיכרד יתשב הז תא תושעל לוכי התא ,טירסתה תא ץירהל ידכ וישכע

    $ ./Hello_world.sh
    $ pwd
    $ /home/karthick/Hello_world
    

    .Bash (/ bin/bash) הז ,ילש הרקמב ,ותיא ץר התאש יחכונה זגפ לכל שגות תינכותה ,shebang רדעיהב .shebang אלל םכלש תינכותה תא שיגהל םיסנמ םתאשכ הרוק המ הארנ ואוב וישכע

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

    $ cat > run-py.py
    echo $SHELL
    print("Hello world")
    
    $ chmod +x run-py.py
    $ ./run-py.py
    

    .ץלמומ דימתש גנבשה וק תא ףיסוהל טושפ וא שיגהל שי ןמגרותמ הזיאל רוכזא ידי לע תינכותל רשקתהל לוכי התא ,הז הרקמב

    # which python3
    $(which python3) /home/karthick/run_py.py
    

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

    $ ps -ef --forest | grep -i bash
    

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

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

      טירסתל רוקמה

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

      $ type -a source
      

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

      $ source FILE_NAME [ARGUMENTS]
      $ . FILE_NAME [ARGUMENTS]
      

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

      Module File.sh.

      #!/usr/bin/env bash
      
      VAR1=$(echo "Welcome to $1")
      
      function f1(){
        echo “Function f1 is called”
      }
      

      .Main.sh ץבוק

      #!/usr/bin/env bash
      
      echo $VAR1
      f1
      

      .האצמנ אל הדוקפה םע לשכתו תפטעמ תביבס יחכונה VAR1 הנתשמה תאו f1 היצקנופה תא אוצמל הסני הז טפירקס ,תעכ ."main.sh"\ישארה טירסתל ארקו טפירקסה לש עוציבה תאשרה ת

      $ bash main.sh
      

      ."main.sh"\תועצמאב שיגנשו תיחכונה הפילקה תביבסב תויצקנופהו הנתשמה תא ןעטתש טפירקסה ךותב רוקמה תדוקפ תא ליעפנ ואוב וישכע

      Module File.sh.

      #!/usr/bin/env bash
      
      VAR1=$(echo "Welcome to $1")
      
      function f1(){
        echo "Function f1 is called"
      }
      

      .Main.sh ץבוק

      #!/usr/bin/env bash
      
      source module.sh Tecmint
      echo $VAR1
      f1
      

      .הארתו בוש טירסתה תא לעפה וישכע

      $ bash main.sh
      

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

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