whiptail উবুন্টু এবং অন্যান্য অনেকগুলি ডিস্ট্রোতে প্রিনস্টাইলে ইনস্টল হয় এবং পূর্ণ-স্ক্রিন (তবে এখনও টার্মিনাল ভিত্তিক) অগ্রগতি উপাদানগুলি প্রদর্শিত হবে।
dialogএটির সুপারস্টার whiptail, সুতরাং এই উদাহরণটি উভয়ের সাথে সমানভাবে কাজ করবে। এটি আরও উন্নত ইউআই উপাদান সরবরাহ করে, সুতরাং যদি আপনি ফাইল বাছাইকারী এবং ফর্মগুলির মতো ব্যবহারকারীর ইন্টারঅ্যাকশনটি সন্ধান করেন তবে এটি কার্যকর হতে পারে তবে অনেক সিস্টেমে এটি ইনস্টল না করার অসুবিধা রয়েছে।


for i in $(seq 1 100)
do
sleep 0.1
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0
নোট করুন যে স্ক্রিপ্ট আউটপুটটি শতাংশ হিসাবে ব্যাখ্যা করা হয়, সুতরাং আপনাকে সেই অনুযায়ী আপনার আউটপুট সামঞ্জস্য করতে হতে পারে।
হুইপটেল এবং ডায়ালগ আপনাকে রান কন্টেন্টের পরিবর্তে ক্রিপ্টিক সিনট্যাক্সের মাধ্যমে পাঠ্য সংশোধন করার অনুমতি দেয়:
phases=(
'Locating Jebediah Kerman...'
'Motivating Kerbals...'
'Treating Kessler Syndrome...'
'Recruiting Kerbals...'
)
for i in $(seq 1 100); do
sleep 0.1
if [ $i -eq 100 ]; then
echo -e "XXX\n100\nDone!\nXXX"
elif [ $(($i % 25)) -eq 0 ]; then
let "phase = $i / 25"
echo -e "XXX\n$i\n${phases[phase]}\nXXX"
else
echo $i
fi
done | whiptail --title 'Kerbal Space Program' --gauge "${phases[0]}" 6 60 0
pvএটির মাধ্যমে পাইপ হওয়া কোনও ফাইল বা স্ট্রিমের অগ্রগতি দেখায়। এটি (সহজে?) কোনও লুপের মতো কাস্টম অপারেশনের অগ্রগতি দেখানোর জন্য ব্যবহৃত হতে পারে না? এটি বিশেষত স্ট্রিমগুলির জন্য ডিজাইন করা হয়েছে।
$ head -c 1G < /dev/urandom | pv -s 1G > /dev/null
277MB 0:00:16 [17.4MB/s] [========> ] 27% ETA 0:00:43
বাস্তবের কয়েকটি উদাহরণ যেখানে কার্যকর pvহয়:
# progress while importing a DB dump
pv mybigfile.sql | mysql -uroot -p dbname
# importing straight from a remote server
ssh user@server 'cat mybigfile.sql.gz' | pv | gzip -cd | mysql -uroot -p dbname
# taking a snapshot of a btrfs partition
btrfs send /snapshots/$date | pv | btrfs receive /mnt/backup/root
আমি এমন কোনও কমান্ড জানি না যা শৈলীতে pvবা এক-লাইনের অগ্রগতি বার দেয় বা না wget, তবে এখানে প্রচুর সরল বাশ / পার্ল / সেড স্ক্রিপ্ট রয়েছে যা সেই কার্যকারিতা যুক্ত করবে, অন্যরা এখানে ভাগ করে নিয়েছে।