צור את סרגל ההתקדמות ב-Bash

Zwr T Srgl Hhtqdmwt B Bash



כאשר נדרש להמתין פרק זמן קבוע במהלך ביצוע סקריפט, עדיף ליצור סרגל התקדמות כדי להודיע ​​למשתמש להמתין זמן מה. ניתן ליצור את סרגל ההתקדמות באמצעות סקריפט Bash פשוט או באמצעות כמה פקודות לינוקס מובנות כגון 'cv', 'דיאלוג' וכו'. השיטות ליצירת פסי התקדמות באמצעות סקריפט Bash מוצגות במדריך זה.

דוגמאות שונות ליצירת סרגל התקדמות ב-Bash

הדרכים השונות ליישום סרגל התקדמות ב-Bash מוצגות בחלק זה של המדריך.

דוגמה 1: יישם סרגל התקדמות פשוט ללא פקודה כלשהי

צור קובץ Bash עם הסקריפט הבא המציג סרגל התקדמות באמצעות התו '#' והפקודה 'sleep'. הפקודה 'printf' משמשת כאן להצגת סרגל ההתקדמות. סרגל ההתקדמות מחולק לארבעה חלקים. ה-25% מוצגים לאחר שנייה אחת. ה-50% מוצגים לאחר 3 שניות. ה-75% מוצגים לאחר 2 שניות. ה-100% מוצג לאחר שנייה אחת.







#!/bin/bash

printf ' \n המתן להשלמת המשימה... \n \n '

#המתן שנייה אחת

לִישׁוֹן 1

#הדפס את החלק הראשון של סרגל ההתקדמות

printf '[##### ] 25%% הושלמו. \r '

#המתן 3 שניות

לִישׁוֹן 3

#הדפס את החלק השני של סרגל ההתקדמות

printf '[########## ] 50%% הושלמו. \r '

#המתן 2 שניות

לִישׁוֹן 2

#הדפס את החלק השלישי של סרגל ההתקדמות

printf '[############## ] 75%% הושלמו. \r '

#המתן שנייה אחת

לִישׁוֹן 1

#הדפס את סרגל ההתקדמות האחרון

printf '[###################] 100%% הושלם. \r '

printf ' \n \n משימה הושלמה. \n \n '

.



הפלט הבא מופיע לאחר שנייה אחת מביצוע הסקריפט:







הפלט הבא מופיע לאחר 7 שניות מביצוע הסקריפט:



דוגמה 2: יישם את סרגל ההתקדמות באמצעות הפקודה 'Pv'.

הצורה המלאה של הפקודה 'pv' היא 'צופה צינורות'. הוא משמש למעקב אחר התקדמות הנתונים המועברים בצינור ולהציג את סרגל ההתקדמות בהתבסס על גודל הנתונים. פקודה זו אינה מותקנת כברירת מחדל במערכת. הפעל את הפקודה הבאה כדי להתקין את הפקודה 'pv' לפני תרגול הסקריפט של דוגמה זו:

$ סודו מַתְאִים להתקין pv

עליך לבחור קובץ בגודל גדול שיועתק ממיקום אחד למקום אחר. צור קובץ Bash עם הסקריפט הבא שמעתיק את הקובץ 'test.txt' מהמיקום הנוכחי למיקום '/home/fahmida/temp/'. הפקודה 'pv' משמשת כאן להצגת סרגל ההתקדמות. סרגל ההתקדמות מוצג על סמך גודל הקובץ 'test.txt'.

#!/bin/bash

הֵד 'העתקת קובץ ממיקום אחד למיקום אחר.'

#המתן 2 שניות

לִישׁוֹן 2

#העתק את הקובץ ליעד

חתול test.txt | pv $ ( סטט % s test.txt ) > / בית / הֲבָנָה / טמפ' / test.txt

הֵד 'הקובץ הועתק.'

הפלט הבא מוצג לאחר השלמת ביצוע הסקריפט:

דוגמה 3: יישם את סרגל ההתקדמות באמצעות הפקודה 'דיאלוג'.

דרך נוספת ליישם סרגל התקדמות ב-Bash היא שימוש בפקודה 'דיאלוג'. ניתן להשתמש בפקודה זו כדי להציג סרגל התקדמות שנראה טוב בטרמינל. ניתן להציג סוגים רבים של ווידג'טים באמצעות סרגל התקדמות זה. ניתן לשלוט במשימה של סרגל ההתקדמות שמוצג על ידי פקודה זו על ידי סקריפט Bash. סרגל התקדמות זה אינו מותקן במערכת כברירת מחדל. הפעל את הפקודה הבאה כדי להתקין את סרגל ההתקדמות הזה במערכת:

$ סודו מַתְאִים להתקין דו-שיח

צור קובץ Bash עם הסקריפט הבא המציג סרגל התקדמות באמצעות הפקודה 'דיאלוג'. המשימה של העתקת הקובץ '/etc/passwd' למיקום '/home/fahmida/tempdir' מוצגת באמצעות סרגל התקדמות. סרגל ההתקדמות מחולק לחמישה חלקים; כל חלק מוצג לאחר 2 שניות. האפשרות -title משמשת בפקודה 'דיאלוג' כדי להציג את הכותרת של שורת ההתקדמות. האפשרות -gauge משמשת בפקודה 'דיאלוג' כדי להציג את סרגל ההתקדמות בגובה של 10 שורות ורוחב של 100 תווים. ההודעה 'ממתין להשלמת המשימה' מוצגת מעל סרגל ההתקדמות.

#!/bin/bash

#אתחל את המונה

current_pos = 0

(

#הגדר לולאה אינסופית

ל ( ( ;; ) )

לַעֲשׂוֹת

חתול <
תוחם

$current_pos

#הצג את ערך המונה הנוכחי

cp /etc/passwd אל /home/fahmida/tempdir ( $current_pos%):

תוחם

EOF


#הגדל את המונה ב-20

( ( current_pos+= עשרים ) )

#סיום מהלולאה כאשר ערך המונה הוא יותר מ-100

[ $current_pos -gt 100 ] && לשבור

#המתן 2 שניות לאחר כל עלייה

לִישׁוֹן 2

בוצע

) | דו-שיח --כותרת 'מעתיק קובץ...' --מַד 'מחכה להשלמת המשימה' 10 100 0


הפלט הבא מופיע לאחר 6 שניות מביצוע הסקריפט:


הפלט הבא מופיע לאחר 10 שניות מביצוע הסקריפט:


סיכום

הדרכים השונות לפיתוח סרגל התקדמות באמצעות סקריפט Bash מוצגות במדריך זה כדי לעזור למשתמשי Bash להשתמש בסרגל ההתקדמות בתוכנית שלהם.