סקונילב תפטעמ לש םיטושפ םיטפירקס רוציל דציכ
.הרוש רחא הרוש תועגיימ תויהל תויושע ןה תרחאש ,ןמצע לע תורזוחש תומישמ לש היצמוטואב םוצע דיקפת םיאלממ תפטעמ לש םיטפירקס .תועבצאה הצקב תויהל םיכירצ סקוניל ישמתשמש רתויב תוינויחה תויונמוימה תח
.עצבל ךירצ סקוניל שמתשמ לכש תויסיסב םיטפירקס טפירקס תולועפמ המכ םישיגדמ ונא הז ךירדמב
טושפ תפטעמ טפירקס רוצ .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
.הז ךרע םתאצמש םיווקמ ונא .תפטעמ לש םיטושפ םיטפירקס תריציל ונלש ךירדמה תא איבמ הז