Creeu la barra de progrés a Bash

Creeu La Barra De Progres A Bash



Quan s'ha d'esperar un temps determinat durant l'execució d'un script, és millor crear una barra de progrés per informar a l'usuari que ha d'esperar un temps. La barra de progrés es pot crear mitjançant un script Bash senzill o utilitzant algunes ordres de Linux integrades com ara 'cv', 'dialog', etc. Els mètodes per crear barres de progrés mitjançant un script Bash es mostren en aquest tutorial.

Diferents exemples de creació d'una barra de progrés a Bash

Les diferents maneres d'implementar una barra de progrés a Bash es mostren en aquesta part del tutorial.

Exemple 1: implementeu una barra de progrés senzilla sense cap comanda

Creeu un fitxer Bash amb el següent script que mostra una barra de progrés amb el caràcter '#' i l'ordre 'sleep'. L'ordre 'printf' s'utilitza aquí per mostrar la barra de progrés. La barra de progrés es divideix en quatre parts. El 25% es mostra al cap d'1 segon. El 50% es mostra al cap de 3 segons. El 75% es mostra al cap de 2 segons. El 100% es mostra al cap d'1 segon.







#!/bin/bash

imprimirf ' \n Espereu a completar la tasca... \n \n '

#Espereu 1 segon

dormir 1

#Imprimeix la primera part de la barra de progrés

imprimirf '[##### ] 25%% completat. \r '

#Espereu 3 segons

dormir 3

#Imprimeix la segona part de la barra de progrés

imprimirf '[########## ] 50%% completat. \r '

#Espereu 2 segons

dormir 2

#Imprimeix la tercera part de la barra de progrés

imprimirf '[############### ] 75%% completat. \r '

#Espereu 1 segon

dormir 1

#Imprimeix l'últim de la barra de progrés

imprimirf '[###################] s'ha completat al 100%. \r '

imprimirf ' \n \n Tasca completada. \n \n '

.



La sortida següent apareix després d'1 segon d'executar l'script:







La sortida següent apareix després de 7 segons d'executar l'script:



Exemple 2: implementeu la barra de progrés mitjançant l'ordre 'Pv'.

La forma completa de l'ordre 'pv' és 'pipe viewer'. S'utilitza per controlar el progrés de les dades que es passen per la canonada i mostrar la barra de progrés en funció de la mida de les dades. Aquesta ordre no està instal·lada per defecte al sistema. Executeu l'ordre següent per instal·lar l'ordre 'pv' abans de practicar l'script d'aquest exemple:

$ sudo apt instal·lar pv

Heu de seleccionar un fitxer de mida gran que es copia d'una ubicació a una altra. Creeu un fitxer Bash amb el següent script que copie el fitxer 'test.txt' de la ubicació actual a la ubicació '/home/fahmida/temp/'. L'ordre 'pv' s'utilitza aquí per mostrar la barra de progrés. La barra de progrés es mostra en funció de la mida del fitxer 'test.txt'.

#!/bin/bash

eco 'S'està copiant el fitxer d'una ubicació a una altra ubicació.'

#Espereu 2 segons

dormir 2

#Copia el fitxer a la destinació

gat prova.txt | pv -s $ ( estat -c % s prova.txt ) > / casa / comprensió / temp / prova.txt

eco 'El fitxer s'ha copiat'.

La sortida següent es mostra després de completar l'execució de l'script:

Exemple 3: implementeu la barra de progrés mitjançant l'ordre 'Diàleg'.

Una altra manera d'implementar una barra de progrés a Bash és utilitzar l'ordre 'diàleg'. Aquesta ordre es pot utilitzar per mostrar una bona barra de progrés al terminal. Es poden mostrar molts tipus de ginys mitjançant aquesta barra de progrés. La tasca de la barra de progrés que es mostra amb aquesta ordre es pot controlar mitjançant l'script Bash. Aquesta barra de progrés no està instal·lada al sistema per defecte. Executeu l'ordre següent per instal·lar aquesta barra de progrés al sistema:

$ sudo apt instal·lar diàleg

Creeu un fitxer Bash amb el següent script que mostra una barra de progrés mitjançant l'ordre 'diàleg'. La tasca de copiar el fitxer '/etc/passwd' a la ubicació '/home/fahmida/tempdir' es mostra mitjançant una barra de progrés. La barra de progrés es divideix en cinc parts; cada part es mostra al cap de 2 segons. L'opció –title s'utilitza a l'ordre 'diàleg' per mostrar el títol de la barra de progrés. L'opció –gauge s'utilitza a l'ordre 'diàleg' per mostrar la barra de progrés amb una alçada de 10 línies i una amplada de 100 caràcters. El missatge 'Esperant per completar la tasca' es mostra a sobre de la barra de progrés.

#!/bin/bash

#Inicialitza el comptador

posició_actual = 0

(

#Definiu un bucle infinit

per ( ( ;; ) )

fer

gat <
delimitador

$pos_actual

#Mostra el valor del comptador actual

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

delimitador

EOF


#Incrementa el comptador en 20

( ( posició_actual+= 20 ) )

#Termina del bucle quan el valor del comptador sigui superior a 100

[ $pos_actual -gt 100 ] && trencar

#Espereu 2 segons després de cada increment

dormir 2

fet

) | diàleg --títol 'S'està copiant el fitxer...' --calibre 'Esperant per completar la tasca' 10 100 0


La sortida següent apareix després de 6 segons d'executar l'script:


La sortida següent apareix després de 10 segons d'executar l'script:


Conclusió

Les diferents maneres de desenvolupar una barra de progrés mitjançant un script Bash es mostren en aquest tutorial per ajudar els usuaris de Bash a utilitzar la barra de progrés al seu programa.