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 pvHeu 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/basheco '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àlegCreeu 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.