Linux Shell Scripting

Bash प्रोग्रेस बार: तीन शक्तिशाली तरीके

Spread the love

लंबी प्रक्रियाओं के दौरान दृश्य प्रतिक्रिया प्रदान करने के लिए प्रोग्रेस बार अमूल्य होते हैं, जो उपयोगकर्ताओं को कार्य की प्रगति का स्पष्ट संकेत देते हैं। जबकि Bash में देशी प्रोग्रेस बार सपोर्ट नहीं है, कई बाहरी उपकरण और लाइब्रेरी मज़बूत समाधान प्रदान करते हैं। यह गाइड तीन अलग-अलग विधियों का पता लगाता है: 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 अंतिम अनुकूलन प्रदान करता है।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *