Crear la barra de progreso en Bash

Crear La Barra De Progreso En Bash



Cuando se requiere esperar un tiempo fijo durante la ejecución de un script, es mejor crear una barra de progreso para informar al usuario que espere un tiempo. La barra de progreso se puede crear usando un script Bash simple o usando algunos comandos integrados de Linux como 'cv', 'dialog', etc. Los métodos para crear barras de progreso usando un script Bash se muestran en este tutorial.

Diferentes ejemplos de creación de una barra de progreso en Bash

Las diferentes formas de implementar una barra de progreso en Bash se muestran en esta parte del tutorial.

Ejemplo 1: implementar una barra de progreso simple sin ningún comando

Cree un archivo Bash con el siguiente script que muestra una barra de progreso usando el carácter '#' y el comando 'dormir'. El comando 'printf' se usa aquí para mostrar la barra de progreso. La barra de progreso se divide en cuatro partes. El 25% se muestra después de 1 segundo. El 50% se muestra después de 3 segundos. El 75% se muestra después de 2 segundos. El 100% se muestra después de 1 segundo.







#!/bin/bash

imprimir ' \norte Espere a completar la tarea... \norte \norte '

#Espera 1 segundo

dormir 1

#Imprimir la primera parte de la barra de progreso

imprimir '[##### ] 25%% completado. \r '

#Espere por 3 segundos

dormir 3

#Imprimir la segunda parte de la barra de progreso

imprimir '[########## ] 50%% completado. \r '

#Espera 2 segundos

dormir 2

#Imprimir la tercera parte de la barra de progreso

imprimir '[############### ] 75%% completado. \r '

#Espera 1 segundo

dormir 1

#Imprime lo último de la barra de progreso

imprimir '[###################] 100%% completado. \r '

imprimir ' \norte \norte Tarea terminada. \norte \norte '

.



El siguiente resultado aparece después de 1 segundo de ejecutar el script:







El siguiente resultado aparece después de 7 segundos de ejecutar el script:



Ejemplo 2: implementar la barra de progreso usando el comando 'Pv'

La forma completa del comando 'pv' es 'visor de tuberías'. Se utiliza para monitorear el progreso de los datos que pasan a través de la tubería y mostrar la barra de progreso según el tamaño de los datos. Este comando no está instalado por defecto en el sistema. Ejecute el siguiente comando para instalar el comando 'pv' antes de practicar el script de este ejemplo:

$ sudo apto instalar p.v.

Tienes que seleccionar un archivo de gran tamaño que se copia de una ubicación a otra ubicación. Cree un archivo Bash con el siguiente script que copia el archivo 'test.txt' desde la ubicación actual a la ubicación '/home/fahmida/temp/'. El comando 'pv' se usa aquí para mostrar la barra de progreso. La barra de progreso se muestra según el tamaño del archivo 'test.txt'.

#!/bin/bash

eco 'Copiando archivo de una ubicación a otra ubicación'.

#Espera 2 segundos

dormir 2

#Copiar el archivo al destino

gato prueba.txt | p.v. -s $ ( estadística -C % s prueba.txt ) > / hogar / comprensión / temperatura / prueba.txt

eco 'El archivo ha sido copiado'.

El siguiente resultado se muestra después de completar la ejecución del script:

Ejemplo 3: implementar la barra de progreso usando el comando 'Diálogo'

Otra forma de implementar una barra de progreso en Bash es usando el comando 'diálogo'. Este comando se puede usar para mostrar una buena barra de progreso en la terminal. Se pueden mostrar muchos tipos de widgets utilizando esta barra de progreso. La tarea de la barra de progreso que muestra este comando puede controlarse mediante el script Bash. Esta barra de progreso no está instalada en el sistema por defecto. Ejecute el siguiente comando para instalar esta barra de progreso en el sistema:

$ sudo apto instalar diálogo

Cree un archivo Bash con el siguiente script que muestra una barra de progreso usando el comando 'diálogo'. La tarea de copiar el archivo “/etc/passwd” en la ubicación “/home/fahmida/tempdir” se muestra mediante una barra de progreso. La barra de progreso se divide en cinco partes; cada parte se muestra después de 2 segundos. La opción –título se usa en el comando “diálogo” para mostrar el título de la barra de progreso. La opción –gauge se usa en el comando 'diálogo' para mostrar la barra de progreso con una altura de 10 líneas y un ancho de 100 caracteres. El mensaje 'Esperando para completar la tarea' se muestra encima de la barra de progreso.

#!/bin/bash

#Inicializar el contador

posición_actual = 0

(

#Definir un bucle infinito

para ( ( ;; ) )

hacer

gato <
delimitador

$pos_actuales

#Mostrar el valor actual del contador

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

delimitador

fin de semana


#Incrementa el contador en 20

( ( posición_actual+= 20 ) )

#Terminar del ciclo cuando el valor del contador es más de 100

[ $pos_actuales -gt 100 ] && romper

#Espere 2 segundos después de cada incremento

dormir 2

hecho

) | diálogo --título 'Copiando archivo...' --indicador 'Esperando para completar la tarea' 10 100 0

 


El siguiente resultado aparece después de 6 segundos de ejecutar el script:


 

El siguiente resultado aparece después de 10 segundos de ejecutar el script:

 


Conclusión

En este tutorial se muestran las diferentes formas de desarrollar una barra de progreso usando un script de Bash para ayudar a los usuarios de Bash a usar la barra de progreso en su programa.