פקודות, תחביר ודוגמאות
אתה יכול לבצע רצף של פקודות על ידי כתיבת אותם לתוך קובץ script ולאחר מכן להפעיל אותו.
קובץ Script הוא פשוט קובץ טקסט, בדרך כלל עם סיומת הקובץ .SH, המכיל רצף של הוראות שניתן לבצע גם משורת הפקודה ( מעטפת ).
בעוד לולאה דוגמאות
להלן דוגמה של לולאה זמן. כאשר להורג, קובץ Script זה ידפיס את המספרים 1 עד 9 על המסך. ההצהרה בזמן נותן לך גמישות רבה יותר לציין את מצב הסיום מאשר לולאה .
#! / bin / bash count = 1 בעוד [$ count -le 9] מבצע הד "$ count" sleep 1 ((count ++)) doneלדוגמה, אתה יכול להפוך את הסקריפט הקודם לולאה אינסופית על ידי ביטול ההצהרה תוספת "((+ + +)):
#! / bin / bash count = 1 בעוד [$ count -le 9] לעשות הד "$ count" שינה 1 לעשותההצהרה "sleep 1" מפסיקה את הביצוע במשך שנייה אחת בכל איטרציה. השתמש בקיצור Ctrl + C כדי לסיים את התהליך.
אתה יכול גם ליצור לולאה אינסופית על ידי הצבת המעי הגס כתנאי:
#! / bin / bash count = 1 בזמן: לעשות הד "$ לספור" שינה 1 ((+ +)) לעשותכדי להשתמש בתנאים מרובים בלולאה בזמן, עליך להשתמש בסימון כפול מרובע:
ספירה = 1 = כאשר [[$ count -le 9] & [$ done == 0]] לעשות הד "$ count" שינה 1 ((+ +)) אם [$ count == 5]; ולאחר מכן לעשות $ 1 Fi fiבתסריט זה, המשתנה "נעשה" הוא מאותחל ל 0 ולאחר מכן מוגדר 1 כאשר הספירה מגיעה 5. מצב לולאה קובע כי הלולאה בזמן ימשיך כל עוד "לספור" הוא פחות מתשע ו "נעשה" שווה לאפס. לכן היציאה לולאות כאשר הספירה שווה 5.
"&&" פירושו לוגי "ו" ו "| |" פירושו לוגי "או".
רישום חלופי לצירופים "ו" או "" בתנאים הוא "-" ו "-" עם סוגריים מרובעים בודדים. המצב לעיל:
[[$ count -le 9] && [$ done == 0]]... יכול להיות rewritten כמו:
[$ count -le 9] - [$ done == 0]קריאת קובץ טקסט מתבצעת בדרך כלל עם לולאה בזמן. בדוגמה הבאה, סקריפט bash קורא את שורת התוכן לפי שורה של קובץ בשם "inventory.txt:"
FILE = Invent.txt exec 6השורה הראשונה מקצה את שם קובץ הקלט למשתנה "FILE". השורה השנייה שומרת את "קלט סטנדרטי" בתיאור הקובץ "6" (זה יכול להיות כל ערך בין 3 ל 9). זה נעשה כך "קלט סטנדרטי" ניתן לשחזר את הקובץ מתאר "0" בסוף הסקריפט (ראה את ההצהרה "exec 0 בקו 3 קובץ הקלט מוקצה לתיאור הקובץ" 0 ", המשמש עבור קלט רגיל.ההצהרה "לקרוא" ואז קורא שורה מהקובץ על כל איטרציה ומקצה אותו "line1" משתנה.
כדי לצאת בטרם עת לולאה בזמן, תוכל להשתמש בהצהרת ההפסקה כך:
ספירה = 1 = כאשר [$ count -le 9] עושים הד "$ count" 1 ((+ +)) אם [$ count == 5]הצהרת ההפסקה מדלגת על ביצוע התוכנית עד הסוף תוך כדי לולאה ומבצעת את ההצהרות הבאות. במקרה זה, את ההצהרה "הד סיים".
ההצהרה המשך, לעומת זאת, מדלגת רק את שאר הלולאה בזמן ההצהרה של איטרציה הנוכחי קופץ ישירות הבאה איטרציה:
ספירה = 1 = 0 כאשר [$ count -le 9] ישנים את השינה 1 ((count ++)) אם [$ count == 5] ולאחר מכן ממשיכים את ההדלקה "$ count"במקרה זה, ההצהרה "המשך" מתבצעת כאשר המשתנה "ספירה" מגיע ל -5. משמעות הדבר היא שההצהרה הבאה (הד "$ count") אינה מבוצעת באיטרציה זו (כאשר הערך של "count" הוא 5).