בנושא זה, תבינו כיצד להשתמש בפקודת שינה על ידי שימוש בסקריפטים שונים של bash. Sleep הוא כלי שורת פקודה המאפשר לנו להשעות את תהליך ההתקשרות לזמן מוגדר. במילים אחרות, פקודת השינה של Bash משמשת להכנסת השהיה או השהיית הביצוע למשך פרק זמן מוגדר.
כאשר המתכנת צריך להשהות את הביצוע של פקודה כלשהי למטרה הספציפית, אז ניתן להשתמש בפקודה זו עם ערך הזמן הספציפי. אפשר להגדיר את כמות ההשהיה לפי שניות (שניות), דקות (מ'), שעות (ח) וימים (ד) . פקודה זו שימושית במיוחד כאשר היא משמשת בתוך סקריפט של bash shell.
אינטליג' רעיון מול ליקוי חמה
תחביר פקודת שינה
להלן התחביר לפקודת השינה ב-Bash:
sleep number[suffix]
אתה יכול להשתמש בכל מספר שלם או שבר חיובי כערך זמן. סיומת היא חלק אופציונלי. אתה יכול להחיל כל אחת מהאפשרויות הבאות כסיומת:
- s - שניות
- מ' - דקות
- h - שעות
- ד - ימים
הערה:כאשר אין סיומת, אז המספר נחשב לשניות (כברירת מחדל).
כאשר מצוינים שני ארגומנטים או יותר, כמות הזמן הכוללת תיחשב כזמן השקול לסכום הערכים שלהם.
להלן כמה דוגמאות פשוטות המראות כיצד להשתמש בפקודת שינה:
- שינה 9 שניות, השתמש
לישון 9 או לישון 9 שניות - שינה 0.5 שניות, השתמש
לישון 0.5 או לישון 0.5 שניות - שינה 2 דקות ו-30 שניות, השתמש
לישון 2 מ' 30 שניות - לישון 8 שעות
לישון 8 שעות - שינה יומיים, 9 שעות, 5 דקות ו-55 שניות, השתמש
שינה 2d 9h 5m 55s
דוגמה לסקריפטים של Bash
אנחנו הולכים להסביר את הדוגמה הבסיסית ביותר לפקודות שינה בבאש.
Bash Script
#!/bin/bash # start time date +'%H:%M:%S' echo 'wait for 9 seconds' # sleep for 9 seconds sleep 9s # you can also use 'sleep 9' in place of 'sleep 9s' because if there is no suffix, it is considered as 'seconds'. # end time date +'%H:%M:%S' echo 'Task Completed'
Bash Console View
תְפוּקָה
איך התסריט עובד
כאשר נריץ את הסקריפט, הוא ידפיס את השעה הנוכחית בפורמט HH:MM:SS. ואז פקודת ההד תבצע ותדפיס את ההודעה 'המתן 9 שניות'. ואז פקודת השינה תבצע ותשהה את הסקריפט למשך 9 שניות. כאשר פרק הזמן שצוין יחלוף, השורה הבאה של הסקריפט תדפיס שוב את השעה הנוכחית. לבסוף, פקודת ההד תדפיס את ההודעה 'המשימה הושלמה'.
באופן דומה, אתה יכול להפעיל פקודת שינה במשך דקות, שעות וימים.
סיכום
בנושא זה, דנו כיצד נוכל לעכב או להשהות ביצוע bash למשך פרק זמן מוגדר.