ব্যাশে একটি প্রগ্রেস বার তৈরির বিভিন্ন উদাহরণ
টিউটোরিয়ালের এই অংশে Bash-এ একটি প্রগ্রেস বার বাস্তবায়নের বিভিন্ন উপায় দেখানো হয়েছে।
উদাহরণ 1: কোনো কমান্ড ছাড়াই একটি সাধারণ অগ্রগতি বার প্রয়োগ করুন
নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা '#' অক্ষর এবং 'sleep' কমান্ড ব্যবহার করে একটি অগ্রগতি বার প্রদর্শন করে। 'printf' কমান্ডটি এখানে প্রগ্রেস বার প্রদর্শন করতে ব্যবহৃত হয়। অগ্রগতি বার চার ভাগে বিভক্ত। 25% 1 সেকেন্ড পরে প্রদর্শিত হয়। 50% 3 সেকেন্ড পরে প্রদর্শিত হয়। 75% 2 সেকেন্ড পরে প্রদর্শিত হয়। 100% 1 সেকেন্ড পরে প্রদর্শিত হয়।
#!/bin/bash
printf ' \n কাজটি সম্পূর্ণ করার জন্য অপেক্ষা করুন... \n \n '
# 1 সেকেন্ড অপেক্ষা করুন
ঘুম 1
#প্রগ্রেস বারের প্রথম অংশ প্রিন্ট করুন
printf '[#####] ২৫%% সম্পন্ন হয়েছে। \r '
#3 সেকেন্ড অপেক্ষা করুন
ঘুম 3
#প্রগ্রেস বারের দ্বিতীয় অংশ প্রিন্ট করুন
printf '[########## ] 50%% সম্পন্ন হয়েছে। \r '
# 2 সেকেন্ড অপেক্ষা করুন
ঘুম 2
#প্রগ্রেস বারের তৃতীয় অংশ প্রিন্ট করুন
printf '[################ ] 75%% সম্পন্ন হয়েছে। \r '
# 1 সেকেন্ড অপেক্ষা করুন
ঘুম 1
# অগ্রগতি বারের শেষটি প্রিন্ট করুন
printf '[#####################] 100%% সম্পন্ন হয়েছে। \r '
printf ' \n \n কাজ সম্পূর্ণ. \n \n '
.
স্ক্রিপ্টটি কার্যকর করার 1 সেকেন্ড পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়:
স্ক্রিপ্টটি চালানোর 7 সেকেন্ড পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়:
উদাহরণ 2: 'Pv' কমান্ড ব্যবহার করে অগ্রগতি বার প্রয়োগ করুন
'pv' কমান্ডের পূর্ণ রূপ হল 'পাইপ ভিউয়ার'। এটি পাইপের মধ্য দিয়ে যাওয়া ডেটার অগ্রগতি নিরীক্ষণ করতে এবং ডেটার আকারের উপর ভিত্তি করে অগ্রগতি বার প্রদর্শন করতে ব্যবহৃত হয়। এই কমান্ডটি সিস্টেমে ডিফল্টরূপে ইনস্টল করা হয় না। এই উদাহরণের স্ক্রিপ্ট অনুশীলন করার আগে 'pv' কমান্ড ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
$ sudo উপযুক্ত ইনস্টল pvআপনাকে বড় আকারের একটি ফাইল নির্বাচন করতে হবে যা এক অবস্থান থেকে অন্য স্থানে অনুলিপি করা হয়। নিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা 'test.txt' ফাইলটিকে বর্তমান অবস্থান থেকে '/home/fahmida/temp/' অবস্থানে অনুলিপি করে। 'pv' কমান্ডটি এখানে অগ্রগতি বার প্রদর্শন করতে ব্যবহৃত হয়। 'test.txt' ফাইলের আকারের উপর ভিত্তি করে অগ্রগতি বার প্রদর্শিত হয়।
#!/bin/bashপ্রতিধ্বনি 'এক অবস্থান থেকে অন্য অবস্থানে ফাইল অনুলিপি করা হচ্ছে।'
# 2 সেকেন্ড অপেক্ষা করুন
ঘুম 2
# ফাইলটি গন্তব্যে অনুলিপি করুন
বিড়াল test.txt | pv -s $ ( stat -গ % s test.txt ) > / বাড়ি / বোঝা / তাপমাত্রা / test.txt
প্রতিধ্বনি 'ফাইল কপি করা হয়েছে।'
স্ক্রিপ্টটি কার্যকর করার পরে নিম্নলিখিত আউটপুটটি প্রদর্শিত হয়:
উদাহরণ 3: 'ডায়ালগ' কমান্ড ব্যবহার করে অগ্রগতি বার প্রয়োগ করুন
Bash এ একটি প্রগ্রেস বার বাস্তবায়নের আরেকটি উপায় হল 'ডায়ালগ' কমান্ড ব্যবহার করা। এই কমান্ডটি টার্মিনালে একটি সুন্দর প্রগতি বার প্রদর্শন করতে ব্যবহার করা যেতে পারে। এই অগ্রগতি বার ব্যবহার করে অনেক ধরনের উইজেট প্রদর্শন করা যেতে পারে। এই কমান্ড দ্বারা প্রদর্শিত অগ্রগতি বারের কাজটি Bash স্ক্রিপ্ট দ্বারা নিয়ন্ত্রিত হতে পারে। এই অগ্রগতি বারটি ডিফল্টরূপে সিস্টেমে ইনস্টল করা হয় না। সিস্টেমে এই অগ্রগতি বার ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:
$ sudo উপযুক্ত ইনস্টল ডায়ালগনিম্নলিখিত স্ক্রিপ্ট সহ একটি ব্যাশ ফাইল তৈরি করুন যা 'ডায়ালগ' কমান্ড ব্যবহার করে একটি অগ্রগতি বার প্রদর্শন করে। '/etc/passwd' ফাইলটিকে '/home/fahmida/tempdir' অবস্থানে অনুলিপি করার কাজটি একটি অগ্রগতি বার ব্যবহার করে প্রদর্শিত হয়। অগ্রগতি বার পাঁচ ভাগে বিভক্ত; প্রতিটি অংশ 2 সেকেন্ড পরে প্রদর্শিত হয়। অগ্রগতি বারের শিরোনাম প্রদর্শন করতে 'ডায়ালগ' কমান্ডে -টাইটেল বিকল্পটি ব্যবহার করা হয়। -গেজ বিকল্পটি 10 লাইনের উচ্চতা এবং 100 অক্ষরের প্রস্থ সহ অগ্রগতি বার প্রদর্শন করতে 'ডায়ালগ' কমান্ডে ব্যবহার করা হয়। 'কাজটি সম্পূর্ণ করার জন্য অপেক্ষা করা হচ্ছে' বার্তাটি অগ্রগতি বারের উপরে প্রদর্শিত হয়।
#!/bin/bash# কাউন্টার চালু করুন
বর্তমান_পোস = 0
(
# একটি অসীম লুপ সংজ্ঞায়িত করুন
জন্য ( ( ;; ) )
করতে
বিড়াল <<ইওএফ
ডিলিমিটার
$current_pos
# বর্তমান কাউন্টার মান দেখান
cp /etc/passwd থেকে /home/fahmida/tempdir ( $current_pos%):
ডিলিমিটার
ইওএফ
# কাউন্টারটি 20 দ্বারা বৃদ্ধি করুন
( ( বর্তমান_পোস+= বিশ ) )
# কাউন্টার মান 100 এর বেশি হলে লুপ থেকে বন্ধ করুন
[ $current_pos -জিটি 100 ] && বিরতি
# প্রতিটি বৃদ্ধির পর 2 সেকেন্ডের জন্য অপেক্ষা করুন
ঘুম 2
সম্পন্ন
) | ডায়ালগ --শিরোনাম 'ফাইল অনুলিপি করা হচ্ছে...' -- গেজ 'টাস্ক সম্পূর্ণ করার জন্য অপেক্ষা করা হচ্ছে' 10 100 0
স্ক্রিপ্টটি চালানোর 6 সেকেন্ড পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়:
স্ক্রিপ্টটি চালানোর 10 সেকেন্ড পরে নিম্নলিখিত আউটপুটটি উপস্থিত হয়:
উপসংহার
ব্যাশ স্ক্রিপ্ট ব্যবহার করে প্রগ্রেস বার তৈরি করার বিভিন্ন উপায় এই টিউটোরিয়ালে দেখানো হয়েছে যাতে ব্যাশ ব্যবহারকারীরা তাদের প্রোগ্রামে প্রগ্রেস বার ব্যবহার করতে পারে।