وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

نوار پیشرفت را در Bash ایجاد کنید

0 1
زمان لازم برای مطالعه: 3 دقیقه


زمانی که لازم است در طول اجرای یک اسکریپت مدت زمان ثابتی منتظر بمانید، بهتر است یک نوار پیشرفت ایجاد کنید تا به کاربر اطلاع دهید که مدتی منتظر بماند. نوار پیشرفت را می توان با استفاده از یک اسکریپت ساده Bash یا با استفاده از برخی دستورات داخلی لینوکس مانند “cv”، “dialog” و غیره ایجاد کرد. روش های ایجاد نوار پیشرفت با استفاده از اسکریپت Bash در این آموزش نشان داده شده است.

نمونه های مختلف ایجاد نوار پیشرفت در Bash

روش های مختلف اجرای نوار پیشرفت در Bash در این قسمت از آموزش نشان داده شده است.

مثال 1: یک نوار پیشرفت ساده بدون هیچ دستوری پیاده سازی کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که نوار پیشرفت را با استفاده از کاراکتر “#” و دستور “sleep” نمایش می دهد. در اینجا از دستور printf برای نمایش نوار پیشرفت استفاده می شود. نوار پیشرفت به چهار قسمت تقسیم می شود. 25% بعد از 1 ثانیه نمایش داده می شود. 50% بعد از 3 ثانیه نمایش داده می شود. 75% بعد از 2 ثانیه نمایش داده می شود. 100% بعد از 1 ثانیه نمایش داده می شود.

#!/bin/bash

printf \nبرای تکمیل کار صبر کنید…\n\n

#1 ثانیه صبر کنید

خواب 1

قسمت اول نوار پیشرفت را #چاپ کنید

printf “[##### ] 25%% تکمیل شده است.\r

#3 ثانیه صبر کنید

خواب 3

قسمت دوم نوار پیشرفت را #چاپ کنید

printf “[########## ] 50٪٪ تکمیل شده است.\r

#2 ثانیه صبر کنید

خواب 2

قسمت سوم نوار پیشرفت را #چاپ کنید

پیشنهاد می‌کنیم بخوانید:  30 مثال Grep

printf “[############### ] 75٪٪ تکمیل شده است.\r

#1 ثانیه صبر کنید

خواب 1

#آخرین نوار پیشرفت را چاپ کنید

printf “[####################] 100% تکمیل شده است.\r

printf \n\nکار تکمیل شد.\n\n

.

خروجی زیر پس از 1 ثانیه از اجرای اسکریپت ظاهر می شود:

نوار پیشرفت را در Bash ایجاد کنید

خروجی زیر پس از 7 ثانیه از اجرای اسکریپت ظاهر می شود:

نوار پیشرفت را در Bash ایجاد کنیدنوار پیشرفت را در Bash ایجاد کنید

مثال 2: نوار پیشرفت را با استفاده از دستور Pv پیاده سازی کنید

شکل کامل دستور “pv” “pipe viewer” است. برای نظارت بر پیشرفت داده هایی که از طریق لوله منتقل می شود و بر اساس نوار پیشرفت نمایش داده می شود، استفاده می شود روی اندازه داده ها این دستور به صورت پیش فرض در سیستم نصب نمی شود. قبل از تمرین اسکریپت این مثال، دستور زیر را برای نصب دستور “pv” اجرا کنید:

$ سودو apt نصب pv

شما باید یک فایل با اندازه بزرگ را انتخاب کنید که از یک مکان به مکان دیگر کپی شده است. یک فایل Bash با اسکریپت زیر ایجاد کنید که فایل “test.txt” را از مکان فعلی به محل “/home/fahmida/temp/” کپی می کند. دستور “pv” در اینجا برای نمایش نوار پیشرفت استفاده می شود. نوار پیشرفت بر اساس نمایش داده می شود روی اندازه فایل “test.txt”.

#!/bin/bash

اکو “کپی فایل از یک مکان به مکان دیگر.”

#2 ثانیه صبر کنید

خواب 2

#فایل را در مقصد کپی کنید

گربه test.txt | pv -s $(آمار%s test.txt) > /خانه/فهمیده/دما/test.txt

اکو “فایل کپی شده است.”

خروجی زیر پس از اتمام اجرای اسکریپت نمایش داده می شود:

نوار پیشرفت را در Bash ایجاد کنیدنوار پیشرفت را در Bash ایجاد کنید

مثال 3: نوار پیشرفت را با استفاده از دستور “Dialog” پیاده سازی کنید

یکی دیگر از راه‌های پیاده‌سازی نوار پیشرفت در Bash استفاده از دستور “dialog” است. از این دستور می توان برای نمایش یک نوار پیشرفت خوب در صفحه استفاده کرد terminal. بسیاری از انواع ویجت ها را می توان با استفاده از این نوار پیشرفت نمایش داد. وظیفه نوار پیشرفت که با این دستور نمایش داده می شود توسط اسکریپت Bash قابل کنترل است. این نوار پیشرفت به طور پیش فرض در سیستم نصب نشده است. دستور زیر را برای نصب این نوار پیشرفت در سیستم اجرا کنید:

$ سودو apt نصب گفتگو

یک فایل Bash با اسکریپت زیر ایجاد کنید که نوار پیشرفت را با استفاده از دستور “dialog” نمایش می دهد. وظیفه کپی کردن فایل “/etc/passwd” در محل “/home/fahmida/tempdir” با استفاده از نوار پیشرفت نمایش داده می شود. نوار پیشرفت به پنج بخش تقسیم می شود. هر قسمت بعد از 2 ثانیه نمایش داده می شود. از گزینه –title در دستور “dialog” برای نمایش عنوان نوار پیشرفت استفاده می شود. برای نمایش نوار پیشرفت با ارتفاع 10 خط و عرض 100 کاراکتر از گزینه –gauge در دستور “dialog” استفاده می شود. پیام “در انتظار تکمیل کار” در بالای نوار پیشرفت نمایش داده می شود.

#!/bin/bash

پیشنهاد می‌کنیم بخوانید:  کپی کردن فایل ها و دایرکتوری ها در لینوکس

شمارنده را #ابتدا اولیه کنید

current_pos=0

(

#حلقه بی نهایت تعریف کنید

برای((;;))

انجام دادن

گربه <

شمارنده را 20 عدد افزایش دهید

(( current_pos+=20 ))

وقتی مقدار شمارنده بیش از 100 باشد، از حلقه خاتمه دهید

[ $current_pos -gt 100 ] && زنگ تفریح

#بعد از هر افزایش ۲ ثانیه صبر کنید

خواب 2

انجام شده

) | گفتگو –عنوان “در حال کپی کردن فایل…” –پیمانه “در انتظار تکمیل کار” 10 100 0

خروجی زیر پس از 6 ثانیه از اجرای اسکریپت ظاهر می شود:


نوار پیشرفت را در Bash ایجاد کنیدنوار پیشرفت را در Bash ایجاد کنید

خروجی زیر پس از 10 ثانیه از اجرای اسکریپت ظاهر می شود:


نوار پیشرفت را در Bash ایجاد کنیدنوار پیشرفت را در Bash ایجاد کنید

نتیجه

راه های مختلف توسعه نوار پیشرفت با استفاده از اسکریپت Bash در این آموزش نشان داده شده است تا به کاربران Bash کمک کند از نوار پیشرفت استفاده کنند. روی برنامه آنها

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-28 17:42:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید