האלולב שומיש ךות Bash טפירקסב ץבוק תאירקל תונוש םיכרד
.הירחא בוקעל ונילעו המישמה תא עצבל תילמיטפוא ךרד שי דימת ךא תובר םיכרדב תחא המישמ גישהל ןתינ ,שאבב .שומישל רתוי הליעי הטיש וזיאו תונוש תוטיש ריכהל ךירצ התא .תונכתב הצופנ הלועפ איה ץבוק תאי
.ןוכנ יאנתה רשאכ םידוק לש הנותנ הצובק ינפ לע תעצבתמו יאנת הכירעמ האלול דועב .האלולה ןמזב לעופ דציכ ריהמ ינושאר ,ידכ ךות loop תועצמאב ץבוקה ןכות תא אורקל דציכ הארתש ינפל
while [ CONDITION ] do code block done
.האלול ריבחת ךות רבשנ ואוב
NUMBER=0 while [[ $NUMBER -le 10 ]] do echo " Welcome ${NUMBER} times " (( NUMBER++ )) done
.דהה טפשמ תא הסיפדמו 10 -מ הלודג הניא NUMBER דע תעצובמ האלולה רשאכ ,הטושפ דואמ המגוד וז
.ןלוכ תא הארנו טלקכ ץבוקה תא ריבעהל תונוש םיכרד ןנשי תעכ .אורקל ןמזב תודוקפ ןיב בולישה ןפוא לש ריבחתה ןלהל .הרוש רחא הרוש ץבוקה ןכות תא אורקל ידכ read הדוקפב שמתשנ ןמזה םע דחי
# SYNTAX while read VARIABLE do code done
סקונילב תרנצ
.' וכו ןוימב שמתשנ ללכ ךרדב
.ךכב הצרת םא ותיא קחשו הזה ץבוקה לש יוביג קתוע חק זא הז ץבוקב קסעתהל ץלמומ אל ךא etc/passwd/ץבוקב שמתשמ ינא ,המגדה ךרוצל .ןמז תאלול ותוא ףנצלו ץבוקה ןכות תא אורקל ידכ ןאכ cat הדוקפב שמ
cat /etc/passwd | while read LREAD do echo ${LREAD} done
.ליעל דוקה תשגה םע הרקי המ טרפנ ואוב
.ידכ ךות האלול ותוא רוניצו בנז ,שאר ומכ תורחא תודוקפב שמתשהל םג לוכי התא
head -n 5 /etc/passwd | while read LREAD do echo ${LREAD} done
סקונילב טלק תיינפה
. (<)
טלק הינפהה רוטרפוא תועצמאב האלול ךות לא ץבוקה ןכות תא תונפהל םילוכי ונא
while read LREAD do echo ${LREAD} done < /etc/passwd | head -n 5
.שדחמ הינפה רוטרפוא ךרד ותוא ריבעהלו הנתשמל ץבוקה םש תא ןסחאל םג ןתינ
FILENAME="/etc/passwd" while read LREAD do echo ${LREAD} done < ${FILENAME}
.ךלש טפירקסל חוכיווכ םיצבק תומש ריבעהל םג לוכי התא
while read LREAD do echo ${LREAD} done < $1 | head -n 5
ימינפ הדש דירפמ
.םינתשמב ותוא ןסחאלו ץבוקה ןכות תא לצפל ידכ "(IFS) ימינפ תודש דירפמ"\ב שמתשהל ןתינ ,הז הרקמב .תישיא םאתומ דירפמ ךמס לע ץבוקה ןכות תא לצפל הצרתש ןכתייו (CSV, TXT, JSON) םיצבק לש םיטמרופ ל
.דרפנ הנתשמב התוא ןסחאלו הרושמ הלימ לכ לצפל ןתינ תעכ . (:)
סגה יעמה תא ליכמה etc/passwd/ץבוקב ןנובתה .דבוע הז ךיא םיגדהל יל ןת
.םינוש םינתשמל לוציפ לכ ןסחואו ילש דירפמכ םייתדוקנ םע etc/passwd/ץבוק לצפמ ינא ,ןלהלש המגודב
while IFS=":" read A B C D E F G do echo ${A} echo ${B} echo ${C} echo ${D} echo ${E} echo ${F} echo ${G} done < /etc/passwd
.ךסמה לדוגב בשחתהב ליעלש ךסמה םוליצב דחא הרוש לוציפ קר יתגצה
סקונילב םיקיר םיווק
.(t\-ו n \) החירב יוות המכו 2 הרושב תוינושל יוות ,ררגנ ןבל חוור ,ליבומ ןבל חוור ,תוקיר תורוש טעמו תורוש 4 ןנשי .ןלהלש ןכותה םע המגודל ץבוק יתרצי תאז םיגדהל ידכ .ץבוקה ןכותב רבוע התא רשאכ
while read LREAD do echo ${LREAD} done < testfile
.הקידב ליעפמ םע םעפה ךא אמגוד התוא לע רוזחנ ואוב וישכע .ספא אוה תזורחמה ךרוא םא קדובש -z
לגדה םע הקידבה ליעפמב שמתשהל איה ץבוקה ןכות תאירק תעב תוקיר תורושמ םלעתהל הטושפ ךרד
while read LREAD do if [[ ! -z $LREAD ]] then echo ${LREAD} fi done < testfile
.תוקיר תורושמ ומלעתהש תוארל לוכי התא טלפהמ תעכ
החירב תויומד
.החירב יוות טעמ וב שיש המגודל ץבוק ותואב שמתשמ ינא תאז םיגדהל ידכ .ץבוק תאירק תעב וספדוי אל \n
, \t
, \c
ומכ החירב יוות
while read LREAD do echo ${LREAD} done < testfile
.יוטנ וק לש תונשרפ עונמל ידכ -r
-ב שמתשהל לוכי התא .\t
-ו \n
םוקמב םיספדומ t -ו n קרו םתועמשמ תא ודביא החירב לש םיוות טלפהמ תוארל ןתינ
while read -r LREAD do echo ${LREAD} done < testfile
.ךומתל וכישמהו אורקל וכישמה .רתוי בוט ןכות רוציל ונל רזועש המ אוה ךלש בושמה .םיפיט וא םיקבדיפ שי םא ךממ עומשל חמשנ .הז רמאמ רובע הז והז