כיצד להשתמש בפקודת השינה של Linux כדי להשהות סקריפט BASH
מה צריך לדעת
- להשתמש ב לִישׁוֹן פקודה פלוס זמן; ס=שניות, M=דקות, ח=שעה (ות, או ד=ימים (לדוגמה, לישון 5 שניות משהה את התסריט למשך 5 שניות).
- להשתמש אדם ישן לעוד.
מאמר זה מסביר כיצד להשתמש בפקודת השינה של Linux כדי להשהות את א תסריט bash, בין השאר. בפני עצמה, פקודת השינה אינה שימושית במיוחד. עם זאת, כחלק מתסריט, ניתן להשתמש בו בדרכים רבות. לדוגמה, אתה יכול להשתמש בו כדי להשהות את הסקריפט לפני שתנסה שוב פקודה שנכשלה בפעם הראשונה.

דוגמה לשימוש בפקודה שינה
תאר לעצמך שיש לך סקריפט שמעבד קבצים שהורדו משרת אחר. הסקריפט לא אמור להתחיל את תהליך ההעתקה עד שכל הקבצים יסתיימו להוריד. תהליך ההורדה מבוצע על ידי סקריפט נפרד שרץ לפני שלך.
הסקריפט שמעתיק את הקבצים עשוי להכיל לולאה כדי לבדוק אם כל הקבצים הורדו (הוא עושה זאת על ידי בדיקה אם נמצאו 50 קבצים לפני תחילת תהליך ההעתקה).
אין טעם בבדיקה מתמדת של הסקריפט מכיוון שזה משתמש בזמן מעבד. במקום זאת, תוכל להשהות כמה דקות בין כל בדיקה לפני שתנסה שוב. פקודת השינה מושלמת בנסיבות כאלה.
כיצד להשתמש בפקודה שינה
כדי להשתמש בפקודת השינה של Linux, הזן את הדברים הבאים בחלון המסוף:
לישון 5 שניות
הפקודה לעיל גורמת למסוף להשהות למשך 5 שניות לפני החזרה לשורת הפקודה.
פקודת השינה דורשת את מילת המפתח לִישׁוֹן, ואחריו המספר שברצונך להשהות ויחידת המידה.
אתה יכול לציין את ההשהיה בשניות, דקות, שעות או ימים.
- ס: שניות
- M: דקות
- ח: שעה (ות
- ד: ימים
כאשר מדובר בהשהיית סקריפט למשך ימים, השתמשו ב-cron job כדי להריץ את הסקריפט במרווחי זמן קבועים, בניגוד להפעלת סקריפט ברקע במשך ימים.
עבודת cron היא פקודה או סקריפט של לינוקס שתוכל לתזמן לפעול בשעה או ביום מוגדרים. אלה שימושיים לחזרה על משימות על פני תקופה ארוכה של זמן.
המספר עבור מרווח פקודת השינה אינו חייב להיות מספר שלם. אתה יכול גם להשתמש במספרי נקודה צפה.

לדוגמה, התחביר הבא כולל שבריר שנייה:
שינה 3.5 שניות
דוגמה לשימוש בפקודה שינה
הסקריפט הבא מראה כיצד להשתמש בפקודת השינה כדי ליצור שעון ספירה לאחור המבוסס על מסוף:
#!/bin/bash
x=10
בעוד [$x -gt 0]
לַעֲשׂוֹת
לישון 1 שניות
ברור
הד "$x שניות עד הפיצוץ"
x=$(($x - 1 ))
בוצע
הנה איך הסקריפט הזה עובד:
- הסקריפט מגדיר את המשתנה x ל-10.
- לולאת ה-while ממשיכה לחזור בזמן שהערך של x גדול מאפס.
- פקודת השינה משהה את הסקריפט למשך שנייה אחת בכל פעם סביב הלולאה.
- שאר הסקריפט מנקה את המסך בכל איטרציה, מציג את ההודעה "x seconds to blast off", ומחסיר 1 מהערך של x.

ללא פקודת השינה, התסריט היה מתקרב, וההודעות יוצגו מהר מדי.
כיצד להשתמש במתגי פקודת שינה
לפקודת השינה יש רק כמה מתגים.
ה --עֶזרָה switch מציג את קובץ העזרה עבור פקודת השינה. אתה יכול להשיג את אותו הדבר על ידי שימוש בפקודה man באופן הבא:
אדם ישן.
ה --גִרְסָה switch מציג את הגרסה של פקודת השינה המותקנת במערכת.
המידע המוחזר על ידי מתג --version הוא כדלקמן:
- גרסת מספר
- פרטי זכויות יוצרים
- רישיון
- מחברים
השהה פקודות מסוף עם שינה
שימוש טוב נוסף לפקודת השינה הוא להשהות פקודות שאתה מקליד בחלון הטרמינל.
אם תרצה, תוכל להקליד שתי פקודות ברצף, להמתין עד שהראשונה תסיים לפני הקלדת השנייה.
עם זאת, גישה מהירה יותר היא להקליד את שתי הפקודות בשורה אחת, עם פקודת שינה בין כל פקודה:
$ cd /mydirectory/ && שינה 3 && ls.
איך הפקודה הזו עובדת:
- ה cd /mydirectory/ הפקודה משנה את הספרייה.
- ה לישון 3 הפקודה ממתינה שלוש שניות עד שהפקודה cd תסתיים.
- ה ls הפקודה מבצעת ומציגה את תוכן הספרייה.
עבור דוגמה פשוטה כמו זו, פקודת השינה חוסכת רק מעט זמן. עם זאת, אם יש לך רשימה ארוכה של פקודות, היכולת להקליד את הפקודות בשורה אחת חוסכת זמן.