Napravite traku napretka u Bashu

Napravite Traku Napretka U Bashu



Kada je potrebno čekati određeno vrijeme tijekom izvršavanja skripte, bolje je stvoriti traku napretka kako bi obavijestili korisnika da pričeka neko vrijeme. Traka napretka može se stvoriti pomoću jednostavne Bash skripte ili pomoću nekih ugrađenih Linux naredbi kao što su 'cv', 'dialog' itd. Metode stvaranja traka napretka pomoću Bash skripte prikazane su u ovom vodiču.

Različiti primjeri stvaranja trake napretka u Bashu

U ovom dijelu vodiča prikazani su različiti načini implementacije trake napretka u Bashu.

Primjer 1: Implementirajte jednostavnu traku napretka bez ikakve naredbe

Stvorite Bash datoteku sa sljedećom skriptom koja prikazuje traku napretka koristeći znak '#' i naredbu 'sleep'. Naredba “printf” ovdje se koristi za prikaz trake napretka. Traka napretka podijeljena je u četiri dijela. 25% se prikazuje nakon 1 sekunde. Nakon 3 sekunde prikazuje se 50%. 75% se prikazuje nakon 2 sekunde. 100% se prikazuje nakon 1 sekunde.







#!/bin/bash

printf ' \n Pričekajte da završite zadatak... \n \n '

#Pričekajte 1 sekundu

spavati 1

#Ispiši prvi dio trake napretka

printf '[##### ] 25%% dovršeno. \r '

#Pričekajte 3 sekunde

spavati 3

#Ispišite drugi dio trake napretka

printf '[########### ] 50%% dovršeno. \r '

#Pričekajte 2 sekunde

spavati 2

#Ispiši treći dio trake napretka

printf '[################ ] 75%% dovršeno. \r '

#Pričekajte 1 sekundu

spavati 1

#Ispiši posljednju traku napretka

printf '[#####################] 100%% dovršeno. \r '

printf ' \n \n Zadatak obavljen. \n \n '

.



Sljedeći izlaz pojavljuje se nakon 1 sekunde od izvršavanja skripte:







Sljedeći izlaz pojavljuje se nakon 7 sekundi od izvršavanja skripte:



Primjer 2: Implementirajte traku napretka pomoću naredbe “Pv”.

Puni oblik naredbe “pv” je “pipe viewer”. Koristi se za praćenje napretka podataka koji prolaze kroz cjevovod i prikaz trake napretka na temelju veličine podataka. Ova naredba nije standardno instalirana u sustavu. Pokrenite sljedeću naredbu da instalirate naredbu “pv” prije vježbanja skripte ovog primjera:

$ sudo prikladan instalirati pv

Morate odabrati datoteku velike veličine koja se kopira s jednog mjesta na drugo mjesto. Stvorite Bash datoteku sa sljedećom skriptom koja kopira datoteku 'test.txt' s trenutne lokacije na lokaciju '/home/fahmida/temp/'. Naredba “pv” ovdje se koristi za prikaz trake napretka. Traka napretka prikazuje se na temelju veličine datoteke 'test.txt'.

#!/bin/bash

jeka 'Kopiranje datoteke s jednog mjesta na drugo.'

#Pričekajte 2 sekunde

spavati 2

#Kopiraj datoteku na odredište

mačka test.txt | pv -s $ ( stat -c % s test.txt ) > / Dom / razumijevanje / temp / test.txt

jeka 'Datoteka je kopirana.'

Nakon završetka izvršavanja skripte prikazuje se sljedeći izlaz:

Primjer 3: Implementirajte traku napretka pomoću naredbe 'Dijalog'.

Drugi način implementacije trake napretka u Bashu je korištenje naredbe 'dialog'. Ova se naredba može koristiti za prikaz trake napretka koja dobro izgleda na terminalu. Mnoge vrste widgeta mogu se prikazati pomoću ove trake napretka. Zadatak trake napretka koji se prikazuje ovom naredbom može se kontrolirati skriptom Bash. Ova traka napretka nije instalirana u sustav prema zadanim postavkama. Pokrenite sljedeću naredbu da biste instalirali ovu traku napretka u sustav:

$ sudo prikladan instalirati dijalog

Stvorite Bash datoteku sa sljedećom skriptom koja prikazuje traku napretka pomoću naredbe 'dialog'. Zadatak kopiranja datoteke “/etc/passwd” u lokaciju “/home/fahmida/tempdir” prikazuje se pomoću trake napretka. Traka napretka podijeljena je u pet dijelova; svaki dio se prikazuje nakon 2 sekunde. Opcija –title koristi se u naredbi “dialog” za prikaz naslova trake napretka. Opcija –gauge koristi se u naredbi 'dialog' za prikaz trake napretka s visinom od 10 redaka i širinom od 100 znakova. Poruka 'Čeka se dovršenje zadatka' prikazuje se iznad trake napretka.

#!/bin/bash

#Inicijaliziraj brojač

trenutna_poz = 0

(

#Definirajte beskonačnu petlju

za ( ( ;; ) )

čini

mačka <
graničnik

$current_pos

#Prikaži trenutnu vrijednost brojača

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

graničnik

EOF


#Povećaj brojač za 20

( ( trenutni_pos+= dvadeset ) )

#Završi iz petlje kada je vrijednost brojača veća od 100

[ $current_pos -gt 100 ] && pauza

#Pričekajte 2 sekunde nakon svakog povećanja

spavati 2

učinjeno

) | dijalog --titula 'Kopiranje datoteke...' -- mjerač 'Čekam da dovršim zadatak' 10 100 0


Sljedeći izlaz se pojavljuje nakon 6 sekundi od izvršavanja skripte:


Sljedeći izlaz se pojavljuje nakon 10 sekundi od izvršavanja skripte:


Zaključak

Različiti načini razvijanja trake napretka pomoću Bash skripte prikazani su u ovom vodiču kako bi pomogli Bash korisnicima da koriste traku napretka u svom programu.