Gumawa ng Progress Bar sa Bash

Gumawa Ng Progress Bar Sa Bash



Kapag kinakailangan na maghintay para sa isang nakapirming tagal ng oras sa panahon ng pagpapatupad ng isang script, mas mahusay na lumikha ng isang progress bar upang ipaalam sa gumagamit na maghintay ng ilang oras. Ang progress bar ay maaaring gawin gamit ang isang simpleng Bash script o gamit ang ilang built-in na Linux command gaya ng “cv”, “dialog”, atbp. Ang mga paraan ng paggawa ng progress bar gamit ang Bash script ay ipinapakita sa tutorial na ito.

Iba't ibang Halimbawa ng Paglikha ng Progress Bar sa Bash

Ang iba't ibang paraan ng pagpapatupad ng progress bar sa Bash ay ipinapakita sa bahaging ito ng tutorial.

Halimbawa 1: Magpatupad ng Simpleng Progress Bar nang walang Anumang Utos

Gumawa ng Bash file na may sumusunod na script na nagpapakita ng progress bar gamit ang '#' na character at ang command na 'sleep'. Ang command na 'printf' ay ginagamit dito upang ipakita ang progress bar. Ang progress bar ay nahahati sa apat na bahagi. Ang 25% ay ipinapakita pagkatapos ng 1 segundo. Ang 50% ay ipinapakita pagkatapos ng 3 segundo. Ang 75% ay ipinapakita pagkatapos ng 2 segundo. Ang 100% ay ipinapakita pagkatapos ng 1 segundo.







#!/bin/bash

printf ' \n Hintaying makumpleto ang gawain... \n \n '

#Maghintay ng 1 segundo

matulog 1

#Print ang unang bahagi ng progress bar

printf '[###### ] 25%% ang natapos. \r '

#Maghintay ng 3 segundo

matulog 3

#Print ang pangalawang bahagi ng progress bar

printf '[########## ] 50%% ang natapos. \r '

#Maghintay ng 2 segundo

matulog 2

#I-print ang ikatlong bahagi ng progress bar

printf '[################ ] 75%% ang natapos. \r '

#Maghintay ng 1 segundo

matulog 1

#I-print ang huli sa progress bar

printf '[######################] 100%% ang natapos. \r '

printf ' \n \n Nakumpleto ang gawain. \n \n '

.



Ang sumusunod na output ay lilitaw pagkatapos ng 1 segundo ng pagpapatupad ng script:







Ang sumusunod na output ay lilitaw pagkatapos ng 7 segundo ng pagpapatupad ng script:



Halimbawa 2: Ipatupad ang Progress Bar Gamit ang 'Pv' Command

Ang buong anyo ng 'pv' na utos ay 'pipe viewer'. Ito ay ginagamit upang subaybayan ang pag-usad ng data na ipinapasa sa pipe at ipakita ang progress bar batay sa laki ng data. Ang command na ito ay hindi naka-install bilang default sa system. Patakbuhin ang sumusunod na command upang i-install ang command na 'pv' bago isagawa ang script ng halimbawang ito:

$ sudo apt i-install pv

Kailangan mong pumili ng isang file na may malaking sukat na kinopya mula sa isang lokasyon patungo sa isa pang lokasyon. Gumawa ng Bash file na may sumusunod na script na kinokopya ang “test.txt” file mula sa kasalukuyang lokasyon patungo sa lokasyong “/home/fahmida/temp/”. Ang command na 'pv' ay ginagamit dito upang ipakita ang progress bar. Ang progress bar ay ipinapakita batay sa laki ng “test.txt” file.

#!/bin/bash

echo 'Pagkopya ng file mula sa isang lokasyon patungo sa isa pang lokasyon.'

#Maghintay ng 2 segundo

matulog 2

#Kopyahin ang file sa patutunguhan

pusa test.txt | pv -s $ ( stat -c % s test.txt ) > / bahay / pagkakaunawaan / temp / test.txt

echo 'Nakopya ang file.'

Ang sumusunod na output ay ipinapakita pagkatapos makumpleto ang pagpapatupad ng script:

Halimbawa 3: Ipatupad ang Progress Bar Gamit ang 'Dialog' Command

Ang isa pang paraan ng pagpapatupad ng progress bar sa Bash ay ang paggamit ng command na 'dialog'. Maaaring gamitin ang command na ito upang magpakita ng magandang progress bar sa terminal. Maraming uri ng mga widget ang maaaring ipakita gamit ang progress bar na ito. Ang gawain ng progress bar na ipinapakita ng command na ito ay maaaring kontrolin ng Bash script. Ang progress bar na ito ay hindi naka-install sa system bilang default. Patakbuhin ang sumusunod na command upang i-install ang progress bar na ito sa system:

$ sudo apt i-install diyalogo

Gumawa ng Bash file na may sumusunod na script na nagpapakita ng progress bar gamit ang command na 'dialog'. Ang gawain ng pagkopya ng “/etc/passwd” na file sa lokasyong “/home/fahmida/tempdir” ay ipinapakita gamit ang isang progress bar. Ang progress bar ay nahahati sa limang bahagi; ang bawat bahagi ay ipinapakita pagkatapos ng 2 segundo. Ang –title na opsyon ay ginagamit sa “dialog” na utos upang ipakita ang pamagat ng progress bar. Ang –gauge na opsyon ay ginagamit sa command na “dialog” para ipakita ang progress bar na may taas na 10 linya at lapad na 100 character. Ang mensaheng 'Naghihintay upang makumpleto ang gawain' ay ipinapakita sa itaas ng progress bar.

#!/bin/bash

#Initialize ang counter

kasalukuyang_pos = 0

(

#Tukuyin ang isang walang katapusang loop

para sa ( ( ;; ) )

gawin

pusa <
delimiter

$current_pos

#Ipakita ang kasalukuyang counter value

cp /etc/passwd sa /home/fahmida/tempdir ($current_pos%):

delimiter

EOF


#Taasan ang counter ng 20

( ( kasalukuyang_pos+= dalawampu ) )

#Wakasan mula sa loop kapag ang counter value ay higit sa 100

[ $current_pos -gt 100 ] && pahinga

#Maghintay ng 2 segundo pagkatapos ng bawat pagtaas

matulog 2

tapos na

) | diyalogo --pamagat 'Kinokopya ang file...' --panukat 'Naghihintay na makumpleto ang gawain' 10 100 0


Ang sumusunod na output ay lilitaw pagkatapos ng 6 na segundo ng pagpapatupad ng script:


Ang sumusunod na output ay lilitaw pagkatapos ng 10 segundo ng pagpapatupad ng script:


Konklusyon

Ang iba't ibang paraan ng pagbuo ng progress bar gamit ang isang Bash script ay ipinapakita sa tutorial na ito upang matulungan ang mga gumagamit ng Bash na gamitin ang progress bar sa kanilang programa.