Različni primeri ustvarjanja vrstice napredka v Bashu
V tem delu vadnice so prikazani različni načini implementacije vrstice napredka v Bash.
Primer 1: Implementacija preproste vrstice napredka brez kakršnega koli ukaza
Ustvarite datoteko Bash z naslednjim skriptom, ki prikaže vrstico napredka z uporabo znaka »#« in ukaza »sleep«. Ukaz »printf« se tukaj uporablja za prikaz vrstice napredka. Vrstica napredka je razdeljena na štiri dele. Po 1 sekundi se prikaže 25 %. Po 3 sekundah se prikaže 50 %. Po 2 sekundah se prikaže 75 %. 100 % se prikaže po 1 sekundi.
#!/bin/bash
printf ' \n Počakajte, da dokončate nalogo ... \n \n '
#Počakajte 1 sekundo
spati 1
#Natisnite prvi del vrstice napredka
printf '[##### ] 25 %% dokončano. \r '
#Počakajte 3 sekunde
spati 3
#Natisnite drugi del vrstice napredka
printf '[########### ] 50 % % dokončano. \r '
#Počakajte 2 sekundi
spati 2
#Natisnite tretji del vrstice napredka
printf '[################ ] 75 % % dokončano. \r '
#Počakajte 1 sekundo
spati 1
#Natisni zadnji del vrstice napredka
printf '[#####################] 100 % % dokončano. \r '
printf ' \n \n Naloga opravljena. \n \n '
.
Po 1 sekundi izvajanja skripta se prikaže naslednji rezultat:
Naslednji izhod se prikaže po 7 sekundah po izvedbi skripta:
Primer 2: Implementirajte vrstico napredka z ukazom »Pv«.
Polna oblika ukaza “pv” je “pregledovalnik cevi”. Uporablja se za spremljanje napredka podatkov, ki se prenašajo skozi cev, in za prikaz vrstice napredka glede na velikost podatkov. Ta ukaz ni privzeto nameščen v sistemu. Zaženite naslednji ukaz, da namestite ukaz »pv«, preden vadite skript tega primera:
$ sudo apt namestite pvIzbrati morate datoteko velike velikosti, ki se kopira z ene lokacije na drugo. Ustvarite datoteko Bash z naslednjim skriptom, ki kopira datoteko »test.txt« s trenutne lokacije na lokacijo »/home/fahmida/temp/«. Ukaz 'pv' se tukaj uporablja za prikaz vrstice napredka. Vrstica napredka je prikazana glede na velikost datoteke »test.txt«.
#!/bin/bashodmev 'Kopiranje datoteke z ene lokacije na drugo lokacijo.'
#Počakajte 2 sekundi
spati 2
#Kopiraj datoteko na cilj
mačka test.txt | pv -s $ ( stat -c % s test.txt ) > / domov / razumevanje / temp / test.txt
odmev 'Datoteka je bila kopirana.'
Po zaključku izvajanja skripta se prikaže naslednji rezultat:
Primer 3: Implementirajte vrstico napredka z ukazom »Dialog«.
Drug način implementacije vrstice napredka v Bash je uporaba ukaza 'dialog'. Ta ukaz lahko uporabite za prikaz lepe vrstice napredka v terminalu. S to vrstico napredka je mogoče prikazati številne vrste gradnikov. Nalogo vrstice napredka, ki jo prikaže ta ukaz, je mogoče nadzorovati s skriptom Bash. Ta vrstica napredka ni privzeto nameščena v sistemu. Zaženite naslednji ukaz, da namestite to vrstico napredka v sistem:
$ sudo apt namestite dialogUstvarite datoteko Bash z naslednjim skriptom, ki prikaže vrstico napredka z ukazom 'dialog'. Naloga kopiranja datoteke »/etc/passwd« na lokacijo »/home/fahmida/tempdir« je prikazana z vrstico napredka. Vrstica napredka je razdeljena na pet delov; vsak del se prikaže po 2 sekundah. Možnost –title se uporablja v ukazu “dialog” za prikaz naslova vrstice napredka. Možnost –gauge se uporablja v ukazu »dialog« za prikaz vrstice napredka z višino 10 vrstic in širino 100 znakov. Nad vrstico napredka se prikaže sporočilo »Čakanje na dokončanje opravila«.
#!/bin/bash#Inicializiraj števec
trenutni_pos = 0
(
#Definiraj neskončno zanko
za ( ( ;; ) )
narediti
mačka <
ločilo
$current_pos
#Prikaži trenutno vrednost števca
cp /etc/passwd v /home/fahmida/tempdir ($current_pos%):
ločilo
EOF
#Povečaj števec za 20
( ( trenutni_pos+= dvajset ) )
#Zaključi iz zanke, ko je vrednost števca večja od 100
[ $current_pos -gt 100 ] && odmor
#Po vsakem povečanju počakajte 2 sekundi
spati 2
Končano
) | dialog --naslov 'Kopiranje datoteke ...' --merilec 'Čakanje na dokončanje naloge' 10 100 0
Po 6 sekundah izvajanja skripta se prikaže naslednji rezultat:
Po 10 sekundah izvajanja skripta se prikaže naslednji rezultat:
Zaključek
Različni načini razvijanja vrstice napredka z uporabo skripta Bash so prikazani v tej vadnici, da bi uporabnikom Bash pomagali pri uporabi vrstice napredka v svojem programu.