סקונילב תפטעמ לש םיטושפ םיטפירקס רוציל דציכ


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

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

טושפ תפטעמ טפירקס רוצ .1

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

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

$ vim hello.sh

.רומשו ץבוקב אבה ןכותה תא קבדה

#!/bin/bash
# Print Hello world message
echo "Hello World!"

.הרוש רחא הרוש הפילקה טפירקס לע רובענ אוב

    .גצומש יפכ chmod הדוקפה תועצמאב עוציב תאשרה תאצקה ידי לע הלעפהל טירסתה תא ךופהל אוה אבה בלשה

    $ chmod +x  hello.sh
    

    :תודוקפהמ תחא תועצמאב זגפה טפירקס תא לעפה ,ףוסבל

    $ bash hello.sh
    OR
    $ ./hello.sh
    

    דוק עוציבל תונתומ תורהצהב שומיש .2

    .elif -ו תרחא-םא ,םא תונתומה תורהצהה תא תוסכל םיכלוה ונא .ריבחתב לק יוניש קר םע ,תוטלחה תלבק ךרוצל bash טירסתב תושמשמ יאנת לע תורהצה ,תורחא תונכת תופש ומכ

    . if ... fi םיקולבה ידי לע רדגומ if טפשמ .דיחי יאנת תקידבל IF -ה תרהצהב יתוהמ שומישב ליחתנ .םיבורמ וא םידדוב םיאנת תקידבל שמשל הלוכי if -ה תרהצה

    if command
    then
      statement
    fi
    

    .הטמל זגפה טפירקס לע לכתסנ ואוב

    #!/bin/bash
    echo 'Enter the score'
    read x
    
    if [[ $x == 70 ]]; then
      echo 'Good job!'
    fi
    

    .100 דע ךרע הווש ,x הנתשמב רומשה ,ןזוהש ןויצה םא הקידבל שמשמ == האוושהה רוטרפוא ."!הבוט הדובע"\טלפה תא ריזחמ טירסתה ,70 םאות ןויצה םא .x הנתשמב רמשנש ןויצ קפסל שמת

    :םיללוכ םהב שמתשהל ולכותש םירחא האוושה יליעפמ

      .50 -מ ךומנ והשלכ ךרע אוה טלקה ןויצ םא 'Work Harder' תא סיפדמ הטמל if-statement שוג ,אמגודל

      if [[ $x -lt 50 ]]; then
        echo 'Work Harder!'
      fi
      

      .ליעות if-else -ה תרהצה - רחא וא הז םא ןיב - :תוירשפא תואצות 2 ךל שי םהבש םיבצמב

      if command
      then
        statement1
      else
        statement2
      fi
      

      .70- ל הווש וא לודג אוה םא קדובו טלקה ןויצ תא ארוק הטמלש טירסתה

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

      #!/bin/bash
      
      echo 'Enter the score'
      
      read x
      
      if [[ $x -ge 70 ]]; then
        echo 'Great job, You passed!'
      else
        echo  'You failed'
      fi
      

      .האבה תנוכתמב תטקונ וז הרהצה .if-elif-else תרהצהב םישמתשמ ,תונוש תואצותו םיאנת רפסמ םנשי םהב םישיחרתב

      if condition1
      then
        statement1
      elif condition2
      then
        statement2
      else
        statement3
      fi
      

      .30 וא 60 ,90 אוה ןזוהש רפסמה םא קדובש הלרגהל טפירקס ונל שי ,המגודל

      #!/bin/bash
      
      echo 'Enter the score'
      
      read x
      
      if [[ $x -eq 90 ]];
      then
        echo “You have won the First Prize”
      
      elif [[ $x -eq 60 ]];
      then
        echo “You have won the Second Prize”
      
      elif [[ $x -eq 30 ]];
      then 
        echo “You have won the Second Prize”
      else
        echo “Please try again”
      fi
      

      AND Logic םע If תרהצהב שומיש .3

      .AND ןויגיהה ןויצל שמשמ && רוטרפוא .םיאנת ינש םימייקתמ םא המישמ עוציבל AND הקיגולה ליעפמ דצל if תרהצהב שמתשהל ךתורשפאב

      #!/bin/bash
      
      echo 'Please Enter your user_id'
      read user_id
      
      echo 'Please Enter your tag_no'
      read tag_id
      
      if [[ ($user_id == “tecmint” && $tag_id -eq 3990) ]];
      then
        echo “Login successful”
      else
        echo “Login failure”
      fi
      

      הקיגול OR םע If תרהצהב שומיש .5

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

      #!/bin/bash
      
      echo 'Please enter a random number'
      read number
      
      if [[ (number -eq 55 || number -eq 80) ]];
      then
       echo 'Congratulations! You’ve won'
      else
       echo 'Sorry, try again'
      fi
      

      האלול ינבמב שמתשה

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

      :טושפ יד אוה ריבחתה .הדובעל רתויב תולקה תואלולה דחא והז

      while  <some test>
      do
       commands
      done
      

      .עוציב תעב 10 דע 1- מ םירפסמה לכ תא תטרפמ הטמלש ןמזה תאלול

      #!/bin/bash
      # A simple while loop
      counter=1
      while [ $counter -le 10 ]
       do
      echo $counter
       ((counter++))
      done
      

      :ןמזה תאלול לע רבדנ ואוב

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

      .שמתשמה ידי לע ורדגוהש רשפאה לככ תובר םימעפ דוק עוציב לע רוזח .רמַוֹלכְּ .יביטרטיא ןפואב דוק עוציבל שמשמ for-loop םג ,while -ה תאלול ומכ

      :אוה ריבחתה

      for var in 1 2 3 4 5 N
      do
       command1
       command2
      done
      

      .ךסמה לע םהלש םיכרעה תא תדבעמו 10 דע הנימי 1 ךרד תעצבתמ הטמל for -ה תאלול

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

      #!/bin/bash
      # Specify range in a for loop
      
      for num in {1..10}
      do
        echo $num
      done
      

      שב םוקימ לש םירטמרפ

      .האלה ןכו ... {11} 36 # & ,{10} 36 # & לשמל םילסלוסמ םיירגוסב םילולכ תויהל םיכירצ םירטמרפה ,9 $ךרעל רבעמ .9 $ל …… 3 $2 $1 $0 $ןיב םיענ םוקימ םירטמרפ .םתוצקהל ןתינ אל ךא הפילקה לע םיר

      .האלה ןכו ישילשה תא 3 $,ינשה תא חקול 2 $,ףוסמל רבעומש ןושארה הנתשמה תא חקול 1 $רטמרפה .הפילקה טפירקס םש תא חקול 0 $אוהש ןושארה םוקימה רטמרפה ,טפירקסה עוציב תעב

      .גצומש יפכ test.sh טפירקס רוציל ואוב

      #!/bin/bash
      echo "The name of the script is: " $0
      echo "My first name is: " $1
      echo "My second name is: " $2
      

      :םינועיטכ ינשהו יטרפה םשה תא קפסו טירסתה תא לעפה ,ןכמ רחאל

      # bash test.sh James Kiarie
      

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

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

      תפטעמ תדוקפל האיצי ידוק

      ?האיצי דוק והמ ,הטושפ הלאשל הבושתב ליחתנ

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

      .החלצהב העצוב אל וא הלשכנ הדוקפהש הארמ 255- ל 1 ןיבש המ לכ .תואיגש אלל החלצהב תעצובמ הדוקפהש זמרמ 0 לש האיצי סוטטס

      .code> $? Shell> הנתשמב שמתשה ,הדוקפ לש האיציה בצמ תא אוצמל ידכ

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

      .הנבומ תפטעמ הנתשמב וא הדוקפב יוגש שומישל תודוקנ 2 לש האיצי סוטטס

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

      טפירקס ךותב תפטעמ תודוקפ לש טלפ דוביע

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

      variable=$(command)
      OR
      variable=$(/path/to/command)
      OR
      variable=$(command argument 1 argument 2 ...)
      

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

      #!/bin/bash
      
      today=$(date)
      
      echo “Today is $today”
      

      .etc/passwd/ץבוקב הרומש (הסינכה םגו ךילהתה ,תכרעמה ישמתשמ םג) םישמתשמה לכ לש המישרה ,תישאר ?הז םע רדתסמ תייה ךיא .ךלש סקונילה תכרעמב םייקוחה הסינכה ישמתשמ תא אוצמל הצרתש חיננ .תפסונ אמ

      .תומשה לש םינושארה םיוותה 10 תא גיצהל ידכ גצומש יפכ cut -c 1-10 הדוקפב שמתשהלו bin/bash/הנוכתה םע םישמתשמ שפחל ידכ grep הדוקפב שמתשהל ךרטצת ,ץבוקה תא גיצהל ידכ

      .login_users הנתשמב לותחה תדוקפ תא ונסחא

      #!/bin/bash
      login_users=$(cat /etc/passwd | grep /bin/bash | cut -c 1-10)
      echo 'This is the list of login users:
      echo $login_users
      

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