Ustvarite vrstico napredka v Bashu

Ustvarite Vrstico Napredka V Bashu



Kadar je med izvajanjem skripta potrebno čakati določen čas, je bolje ustvariti vrstico napredka, ki bo uporabnika obvestila, naj počaka nekaj časa. Vrstico napredka je mogoče ustvariti s preprostim skriptom Bash ali z nekaterimi vgrajenimi ukazi Linuxa, kot sta »cv«, »dialog« itd. Metode ustvarjanja vrstic napredka s skriptom Bash so prikazane v tej vadnici.

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 pv

Izbrati 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/bash

odmev '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 dialog

Ustvarite 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.