قم بإنشاء شريط التقدم في Bash

Qm Bansha Shryt Altqdm Fy Bash



عندما يتطلب الأمر الانتظار لفترة محددة من الوقت أثناء تنفيذ البرنامج النصي ، فمن الأفضل إنشاء شريط تقدم لإعلام المستخدم بالانتظار لبعض الوقت. يمكن إنشاء شريط التقدم باستخدام برنامج نصي Bash بسيط أو باستخدام بعض أوامر Linux المضمنة مثل 'cv' و 'الحوار' وما إلى ذلك. يتم عرض طرق إنشاء أشرطة تقدم باستخدام برنامج Bash النصي في هذا البرنامج التعليمي.

أمثلة مختلفة لإنشاء شريط تقدم في Bash

يتم عرض الطرق المختلفة لتطبيق شريط التقدم في Bash في هذا الجزء من البرنامج التعليمي.

مثال 1: تنفيذ شريط تقدم بسيط بدون أي أمر

قم بإنشاء ملف Bash بالبرنامج النصي التالي الذي يعرض شريط تقدم باستخدام الحرف '#' والأمر 'sleep'. يتم استخدام الأمر 'printf' هنا لعرض شريط التقدم. شريط التقدم مقسم إلى أربعة أجزاء. يتم عرض 25٪ بعد ثانية واحدة. يتم عرض 50٪ بعد 3 ثوانٍ. يتم عرض 75٪ بعد ثانيتين. يتم عرض 100٪ بعد ثانية واحدة.







#! / بن / باش

printf ' انتظر لإكمال المهمة ... '

# انتظر لمدة ثانية واحدة

ينام 1

# طباعة الجزء الأول من شريط التقدم

printf '[#####] 25 ٪٪ اكتمل. \ r '

# انتظر لمدة 3 ثوان

ينام 3

# طباعة الجزء الثاني من شريط التقدم

printf '[###########] اكتمل بنسبة 50 ٪٪. \ r '

# انتظر لمدة ثانيتين

ينام 2

# طباعة الجزء الثالث من شريط التقدم

printf '[################] 75 ٪٪ مكتمل. \ r '

# انتظر لمدة ثانية واحدة

ينام 1

# اطبع آخر شريط التقدم

printf '[#####################] 100 ٪٪ مكتمل. \ r '

printf ' تمت المهمة. '

.



يظهر الإخراج التالي بعد ثانية واحدة من تنفيذ البرنامج النصي:







يظهر الإخراج التالي بعد 7 ثوانٍ من تنفيذ البرنامج النصي:



مثال 2: تنفيذ شريط التقدم باستخدام الأمر 'Pv'

الشكل الكامل للأمر 'pv' هو 'pipe viewer'. يتم استخدامه لمراقبة تقدم البيانات التي يتم تمريرها عبر الأنبوب وعرض شريط التقدم بناءً على حجم البيانات. لم يتم تثبيت هذا الأمر افتراضيًا في النظام. قم بتشغيل الأمر التالي لتثبيت الأمر “pv” قبل التدرب على سكريبت هذا المثال:

$ سودو ملائم ثَبَّتَ الكهروضوئية

يجب عليك تحديد ملف كبير الحجم يتم نسخه من موقع إلى موقع آخر. قم بإنشاء ملف Bash بالبرنامج النصي التالي الذي ينسخ ملف “test.txt” من الموقع الحالي إلى موقع “/ home / fahmida / temp /”. يتم استخدام الأمر 'pv' هنا لعرض شريط التقدم. يتم عرض شريط التقدم بناءً على حجم ملف “test.txt”.

#! / بن / باش

صدى صوت 'نسخ ملف من موقع إلى موقع آخر.'

# انتظر لمدة ثانيتين

ينام 2

# انسخ الملف إلى الوجهة

قطة test.txt | الكهروضوئية $ ( ستات ٪ s test.txt ) > / بيت / فهم / درجة حرارة / test.txt

صدى صوت 'تم نسخ الملف.'

يتم عرض المخرجات التالية بعد الانتهاء من تنفيذ البرنامج النصي:

مثال 3: تنفيذ شريط التقدم باستخدام أمر 'الحوار'

هناك طريقة أخرى لتطبيق شريط التقدم في Bash وهي استخدام أمر 'الحوار'. يمكن استخدام هذا الأمر لعرض شريط تقدم جيد المظهر في الجهاز. يمكن عرض العديد من أنواع الأدوات باستخدام شريط التقدم هذا. يمكن التحكم في مهمة شريط التقدم التي يتم عرضها بواسطة هذا الأمر بواسطة برنامج Bash النصي. لم يتم تثبيت شريط التقدم هذا في النظام افتراضيًا. قم بتشغيل الأمر التالي لتثبيت شريط التقدم هذا في النظام:

$ سودو ملائم ثَبَّتَ الحوار

قم بإنشاء ملف Bash بالبرنامج النصي التالي الذي يعرض شريط تقدم باستخدام أمر 'الحوار'. يتم عرض مهمة نسخ ملف '/ etc / passwd' في موقع '/ home / fahmida / tempdir' باستخدام شريط التقدم. شريط التقدم مقسم إلى خمسة أجزاء ؛ يتم عرض كل جزء بعد ثانيتين. يُستخدم الخيار –title في أمر 'الحوار' لعرض عنوان شريط التقدم. يُستخدم الخيار –gauge في أمر 'الحوار' لعرض شريط التقدم بارتفاع 10 أسطر وعرض 100 حرف. يتم عرض رسالة 'في انتظار إكمال المهمة' أعلى شريط التقدم.

#! / بن / باش

# تهيئة العداد

Current_pos = 0

(

# حدد حلقة لا نهائية

ل ( ( ؛؛ ) )

يفعل

قطة << EOF

محدد

Current_pos

# إظهار قيمة العداد الحالي

cp / etc / passwd إلى / home / fahmida / tempdir ($ current_pos٪):

محدد

EOF


# زيادة العداد بمقدار 20

( ( Current_pos + = عشرين ) )

# الإنهاء من الحلقة عندما تكون قيمة العداد أكثر من 100

[ Current_pos -Gt 100 ] && استراحة

# انتظر لمدة ثانيتين بعد كل زيادة

ينام 2

منتهي

) | الحوار --عنوان 'نسخ الملف ...' --كَيّل 'في انتظار إكمال المهمة' 10 100 0


يظهر الإخراج التالي بعد 6 ثوانٍ من تنفيذ البرنامج النصي:


يظهر الإخراج التالي بعد 10 ثوانٍ من تنفيذ البرنامج النصي:


خاتمة

يتم عرض الطرق المختلفة لتطوير شريط التقدم باستخدام برنامج نصي Bash في هذا البرنامج التعليمي لمساعدة مستخدمي Bash على استخدام شريط التقدم في برنامجهم.