लंबी प्रक्रियाओं के दौरान दृश्य प्रतिक्रिया प्रदान करने के लिए प्रोग्रेस बार अमूल्य होते हैं, जो उपयोगकर्ताओं को कार्य की प्रगति का स्पष्ट संकेत देते हैं। जबकि Bash में देशी प्रोग्रेस बार सपोर्ट नहीं है, कई बाहरी उपकरण और लाइब्रेरी मज़बूत समाधान प्रदान करते हैं। यह गाइड तीन अलग-अलग विधियों का पता लगाता है: pv
कमांड का उपयोग करना, dialog
कमांड का उपयोग करना और ncurses
लाइब्रेरी का उपयोग करना।
विषय-सूची
- प्रोग्रेस बार के लिए
pv
का उपयोग करना - प्रोग्रेस बार के लिए
dialog
का उपयोग करना - उन्नत प्रोग्रेस बार के लिए
ncurses
का उपयोग करना
प्रोग्रेस बार के लिए pv
का उपयोग करना
pv
(पाइप व्यूअर) कमांड डेटा स्ट्रीम की निगरानी करने में उत्कृष्ट है, जिससे यह फ़ाइल ट्रांसफ़र या इसी तरह के डेटा-गहन संचालन में प्रगति को दर्शाने के लिए आदर्श है। इसकी सादगी और प्रभावशीलता महत्वपूर्ण लाभ हैं।
स्थापना:
pv
अधिकांश Linux वितरण पैकेज मैनेजर के माध्यम से आसानी से उपलब्ध है। अपने वितरण के विशिष्ट कमांड का उपयोग करके स्थापित करें (जैसे, Debian/Ubuntu पर sudo apt-get install pv
, CentOS/RHEL पर sudo yum install pv
, Arch Linux पर sudo pacman -S pv
)।
उपयोग:
मूल सिंटैक्स सरल है:
pv input_file > output_file
input_file
को अपनी स्रोत फ़ाइल से और output_file
को वांछित गंतव्य से बदलें। pv
गतिशील रूप से एक प्रोग्रेस बार प्रदर्शित करेगा जो ट्रांसफ़र दर और अनुमानित पूर्णता समय को इंगित करता है।
उदाहरण:
एक बड़ी फ़ाइल (large_file.zip
) को प्रोग्रेस बार के साथ कॉपी करने के लिए:
pv large_file.zip > copied_large_file.zip
pv
की लचीलापन फ़ाइल कॉपी करने से परे है। यह डेटा स्ट्रीम उत्पन्न करने वाले कमांड के साथ सहजता से एकीकृत होता है। उदाहरण के लिए, एक tar संग्रह निष्कर्षण की निगरानी करने के लिए:
tar -xvf large_archive.tar | pv > /dev/null
यहाँ, /dev/null
निकाली गई फ़ाइलों को त्याग देता है, केवल प्रगति की निगरानी पर ध्यान केंद्रित करता है।
प्रोग्रेस बार के लिए dialog
का उपयोग करना
dialog
कमांड इंटरैक्टिव डायलॉग बॉक्स की एक विस्तृत श्रृंखला प्रदान करता है, जिसमें एक बहुमुखी प्रोग्रेस बार भी शामिल है। यह pv
की तुलना में बार की उपस्थिति पर अधिक नियंत्रण प्रदान करता है और डेटा स्ट्रीम तक सीमित नहीं है।
स्थापना:
pv
की तरह, dialog
आम तौर पर आपके वितरण के पैकेज मैनेजर के माध्यम से उपलब्ध होता है (जैसे, sudo apt-get install dialog
, sudo yum install dialog
, sudo pacman -S dialog
)।
उपयोग:
dialog
का प्रोग्रेस बार --gauge
विकल्प का उपयोग करता है। आप शीर्षक, अधिकतम मान (100%), और वर्तमान मान निर्दिष्ट करते हैं। स्क्रिप्ट वर्तमान मान को पुनरावृति रूप से अपडेट करती है।
उदाहरण:
यह स्क्रिप्ट एक प्रक्रिया का अनुकरण करती है और एक प्रोग्रेस बार प्रदर्शित करती है:
#!/bin/bash
for i in $(seq 1 100); do
dialog --gauge "Processing..." 10 60 $i
sleep 0.1
done
dialog --infobox "Process complete!" 10 30
स्क्रिप्ट 100 बार लूप करती है, प्रोग्रेस बार को बढ़ाती है। sleep 0.1
प्रदर्शन के लिए एक देरी जोड़ता है। chmod +x your_script.sh
का उपयोग करके स्क्रिप्ट को निष्पादन योग्य बनाएँ।
उन्नत प्रोग्रेस बार के लिए ncurses
का उपयोग करना
अधिकतम अनुकूलन और नियंत्रण के लिए, ncurses
लाइब्रेरी अद्वितीय लचीलापन प्रदान करती है। ncurses
सीधे टर्मिनल आउटपुट में हेरफेर करता है, जिससे अत्यधिक अनुकूलित प्रोग्रेस बार सक्षम होते हैं। हालाँकि, इस दृष्टिकोण के लिए प्रोग्रामिंग और ncurses
फ़ंक्शंस की गहरी समझ की आवश्यकता होती है।
स्थापना:
ncurses
अक्सर पहले से स्थापित होता है। यदि नहीं, तो अपने वितरण के पैकेज मैनेजर का उपयोग करके स्थापित करें (जैसे, sudo apt-get install libncurses5-dev
, sudo yum install ncurses-devel
, sudo pacman -S ncurses
)।
उपयोग:
इस गाइड के दायरे से परे एक पूर्ण ncurses
उदाहरण इसकी जटिलता के कारण है। इस प्रक्रिया में ncurses
को इनिशियलाइज़ करना, mvprintw
जैसे फ़ंक्शंस का उपयोग करके बार को ड्रॉ करना, इसे पुनरावृति रूप से अपडेट करना और अंत में ncurses
को साफ़ करना शामिल है। आप मैन्युअल रूप से कर्सर की स्थिति का प्रबंधन करते हैं। कई ऑनलाइन संसाधन C या अन्य भाषाओं में विस्तृत ncurses
ट्यूटोरियल प्रदान करते हैं; इन्हें Bash में अनुकूलित करने के लिए सावधानीपूर्वक ध्यान देने की आवश्यकता है।
यह लेख Bash प्रोग्रेस बार बनाने के तीन तरीके प्रस्तुत करता है। अपनी आवश्यकताओं और कौशल के अनुसार सबसे उपयुक्त विधि चुनें। pv
सरल कार्यों के लिए आदर्श है; dialog
अधिक नियंत्रण प्रदान करता है; और ncurses
अंतिम अनुकूलन प्रदान करता है।