
while [ $a -le 10 ]. כל עוד התנאי נכון, הפקודות שבין do ל-done יתבצעו שוב.a++. בלי השורה הזו המשתנה נשאר קבוע, התנאי תמיד נכון והלולאה לא נגמרת. המרצה מדגים את הטעות הזו בשיעור.$# מחזיר את כמות הפרמטרים שהמשתמש הזין לסקריפט. ה-$# משמש כתנאי לגבול הלולאה.$1.$1, ואז מזיזים את הרשימה בעזרת shift. כך כל ערך מטופל פעם אחת.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «סקריפט עם לולאת while» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בסרטון שלפניכם אני מעוניין לדבר על שימוש בלולאות. זהו חלק ח' בכתיבת סקריפטים ללינופס ויוניקס, ואני רוצה לדבר על לופס, על שימוש בפונקציית לולאות.
וכמו שאתם שמתם לב, כתבתי פה לולאות, לולאות, לולאות, לולאות, זה לא טעות. הכוונה היא פשוט לעורר את הנושא הזה שלולאה, מה שהיא באה לעשות עבורנו, היא באה לאפשר לנו לעשות את אותה משימה מספר פעמים, יותר מפעם אחת.
אחד הפונקציות המאוד חשובות היא באמת הפונקציה של לעשות לולאה Loop בסקריפטים ושוב פעם כאשר נבקש לחזור על אותה פעולה יותר מפעם אחת נצטרך להשתמש בלולאה מסוג מסוים יש מספר לולאות יש לולאת while זה הלולאה הראשונה שאני אציג לכם ויש לולאת for זה הלולאה
השנייה אוקיי אז כשאנחנו כותבים סקריפט בדרך כלל הסקריפט הזה עושה עבורנו משימה עכשיו לפעמים זו משימה אחת בלבד ועד עכשיו נטלתי והייתי חייב כמובן לנסות לתת לכם דוגמאות של סקריפטים גם מחיי היומיום גם דברים שסתם המצאנו לצורך התרגול כאשר הסקריפט יש לו משימה שהוא צריך לבצע פעם אחת הוא פעם אחת עושה פינג
לשרת הוא פעם אחת מגבה קבצים הוא פעם אחת עושה משהו אחרי שנתתי לו אינפורמציה אבל עכשיו יש איזו שאלה מה קורה אם הייתי רוצה שלעשות פינג על עשרה שרתים שאני מקבל מהמשתמש.
כלומר על כל שרת לעשות פינג או על כל שרת שאני מקבל לעשות הנמר או על כל סוג של קובץ שאני מקבל לעשות גיבוי. תראו אני יכול לעשות את זה בלי לולאה אבל מן הסתם הסקריפט שלי יכול מאוד להיות שהוא יהיה 200 300 500 שורות כי אני פשוט אצטרך ללכת ולעשות עוד פעם לכתוב עוד פעם ועוד פעם ועוד פעם את אותה משימה על סוגים שונים של מידע.
שמות שונים של שרתים, שמות שונים של קבצים וכן הלאה וכן הלאה. זה לא חכם, זה לא רציני. כאן נכנסת לתמונה הפונקציה לולאה.
אז הלולאה, מה שהיא יודעת לעשות, אני נותן ללולאה את הטווח שבו היא רצה, למשל לרוץ 10 פעמים, 20 פעם, 30 פעם, וואטאבר, ולעשות a, b, c, d, אוקיי?
אז בואו נתחיל עם שימוש בלולאת while. מה זה בעצם לולאת while? while נראית ככה while condition מסוים מתקיים, את הדברים הבאים תעשה את הדברים הבאים command a command b command z ו done תפסיק תסיים זה הרעיון של לולאת while פשוט ישר ולעניין באמת פקודה מאוד פשוטה ונחמדה שהיא מאוד מאוד חזקה כמה שהיא פשוטה ככה היא הרבה
יותר חזקה אבל אם אתם מבינים את הרעיון של לולאת אנחנו בעצם אומרים רגע לולאת צריכה לרוץ מספר פעמים אז איך אני קובע כמה פעמים כמה פעמים הלולאת תרוץ אני קובע על ידי יצירת condition שכולל את מספר הפעמים שאני רוצה שהווייל ירוץ.
ואיך אנחנו עושים את זה? יש כמה שיטות. אחת השיטות למשל היא, אני מייצר משתנה, למשל a שווה 1, ואז אני אומר, כי אני רוצה, אני יודע שאני מעוניין שהמשימה הזאת תרוץ על עשרה שרתים, זה המספר שרתים שיש לי. בוא נגיד שאני יודע כמה פעמים הווייל צריך לרוץ.
לפעמים אני לא יודע, ואני צריך לקבל את זה מהמשתמש, אנחנו נראה גם את האופציה הזאת. לפעמים אני לא יודע ואני צריך להוציא את זה ממשהו מסוים למשל מכמות הקבצים שתמצא תרוץ על כל אחד מהם ותעשה ABCD אז כשהוא ימצא 12 קבצים הוא יעשה את זה 12 פעמים כשהוא ימצא 18 קבצים הוא יעשה את זה על 18 קבצים או 18 פעמים אז בוא נתחיל מהבייסיק איך אני אומר איך אני בסקריפט שלי
גורם לבצע את אותה פעולה 10 פעמים אז אני עושה A שווה 1 אז אני אומר while, כמובן לא צריך פה דעות גדולות, while, פותח סוגריים מרובעים, דולר A, שזה המשתנה שלנו שיצרנו פה, is less or equal to 10, do the following command: echo Hello World.
ומה שקורה פה בעצם, שימו לב, שמתי את זה באדום ואז אני עושה עוד שורה מאוד מאוד מאוד מאוד מאוד חשובה, וזו השורה שבעצם היא המנוע של ה-Y, המנוע, והיא אומרת A++, כלומר אני כל פעם אוסיף אחד ל-A, אז מה שקורה זה הדבר הבא, כל עוד a הוא less or equal ל-10, תעשה את הדברים הבאים:
echo אל הוורד ו-a פלוס 1, ו-done. אבל done הוא לא יסיים עד שהוא לא מסיים את הלולאה. אז מה שיקרה הוא ירוץ פעם אחת, יוסיף אחד ל-a, a כבר שווה 2, ירוץ פעם שנייה, a שווה 3, ירוץ פעם שלישית, a שווה 4, 5, 6, 7, 8, 9, 10, and then a שווה 11, פה הוא יקפוץ ל-done, ואז 10 פעמים הוא ירוץ.
אוקיי בואו נעשה את זה בואו נעשה לולאה שעושה עשר פעמים משהו מסוים שאנחנו מבקשים ממנה לעשות אז בואו ניצור את הסקריפט מספר 9 שלנו אז שוב פעם נחזור לטמפלט שלנו cp טמפלט אז בואו עכשיו אני אראה שאני הולך להשתמש במשתנה a נכון