Opret statuslinjen i Bash

Opret Statuslinjen I Bash



Når det er nødvendigt at vente i et fast tidsrum under udførelsen af ​​et script, er det bedre at oprette en statuslinje for at informere brugeren om at vente et stykke tid. Statuslinjen kan oprettes ved hjælp af et simpelt Bash-script eller ved hjælp af nogle indbyggede Linux-kommandoer såsom 'cv', 'dialog' osv. Metoderne til at oprette en statuslinje ved hjælp af et Bash-script er vist i denne tutorial.

Forskellige eksempler på oprettelse af en statuslinje i Bash

De forskellige måder at implementere en statuslinje i Bash på er vist i denne del af selvstudiet.

Eksempel 1: Implementer en simpel statuslinje uden nogen kommando

Opret en Bash-fil med følgende script, der viser en statuslinje ved hjælp af '#'-tegnet og 'sleep'-kommandoen. Kommandoen 'printf' bruges her til at vise statuslinjen. Statuslinjen er opdelt i fire dele. De 25 % vises efter 1 sekund. De 50 % vises efter 3 sekunder. De 75 % vises efter 2 sekunder. 100 % vises efter 1 sekund.







#!/bin/bash

printf ' \n Vent med at fuldføre opgaven... \n \n '

#Vent i 1 sekund

søvn 1

#Udskriv den første del af statuslinjen

printf '[##### ] 25 %% fuldført. \r '

#Vent i 3 sekunder

søvn 3

#Udskriv den anden del af statuslinjen

printf '[########## ] 50 %% fuldført. \r '

#Vent i 2 sekunder

søvn 2

#Udskriv den tredje del af statuslinjen

printf '[############### ] 75 %% fuldført. \r '

#Vent i 1 sekund

søvn 1

#Udskriv den sidste af statuslinjen

printf '[###################] 100 %% gennemført. \r '

printf ' \n \n Opgave udført. \n \n '

.



Følgende output vises efter 1 sekund efter udførelse af scriptet:







Følgende output vises efter 7 sekunder efter udførelse af scriptet:



Eksempel 2: Implementer fremskridtslinjen ved hjælp af kommandoen 'Pv'.

Den fulde form af 'pv' kommandoen er 'pipe viewer'. Den bruges til at overvåge forløbet af de data, der føres gennem røret, og vise statuslinjen baseret på størrelsen af ​​dataene. Denne kommando er ikke installeret som standard i systemet. Kør følgende kommando for at installere kommandoen 'pv', før du øver scriptet i dette eksempel:

$ sudo passende installere pv

Du skal vælge en fil af stor størrelse, der kopieres fra et sted til et andet. Opret en Bash-fil med følgende script, der kopierer 'test.txt'-filen fra den aktuelle placering til '/home/fahmida/temp/'-placeringen. Kommandoen 'pv' bruges her til at vise statuslinjen. Statuslinjen vises baseret på størrelsen af ​​'test.txt'-filen.

#!/bin/bash

ekko 'Kopierer fil fra et sted til et andet.'

#Vent i 2 sekunder

søvn 2

#Kopiér filen til destinationen

kat test.txt | pv -s $ ( stat -c % s test.txt ) > / hjem / forståelse / Midlertidig / test.txt

ekko 'Filen er blevet kopieret.'

Følgende output vises efter fuldførelse af udførelsen af ​​scriptet:

Eksempel 3: Implementer statuslinjen ved hjælp af kommandoen 'Dialog'.

En anden måde at implementere en statuslinje i Bash på er at bruge kommandoen 'dialog'. Denne kommando kan bruges til at vise en flot statuslinje i terminalen. Mange typer widgets kan vises ved hjælp af denne statuslinje. Opgaven for statuslinjen, der vises af denne kommando, kan styres af Bash-scriptet. Denne statuslinje er ikke installeret i systemet som standard. Kør følgende kommando for at installere denne statuslinje i systemet:

$ sudo passende installere dialog

Opret en Bash-fil med følgende script, der viser en statuslinje ved hjælp af 'dialog'-kommandoen. Opgaven med at kopiere '/etc/passwd'-filen til '/home/fahmida/tempdir'-placeringen vises ved hjælp af en statuslinje. Statuslinjen er opdelt i fem dele; hver del vises efter 2 sekunder. Indstillingen –title bruges i 'dialog'-kommandoen til at vise titlen på statuslinjen. Valgmuligheden –gauge bruges i 'dialog'-kommandoen til at vise statuslinjen med en højde på 10 linjer og en bredde på 100 tegn. Meddelelsen 'Venter på at fuldføre opgaven' vises over statuslinjen.

#!/bin/bash

#Initialiser tælleren

aktuelle_pos = 0

(

#Definer en uendelig løkke

til ( ( ;; ) )

gør

kat <
afgrænsning

$current_pos

#Vis den aktuelle tællerværdi

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

afgrænsning

EOF


#Forøg tælleren med 20

( ( aktuelle_pos+= tyve ) )

#Afslut fra løkken, når tællerværdien er mere end 100

[ $current_pos -gt 100 ] && pause

#Vent i 2 sekunder efter hver stigning

søvn 2

Færdig

) | dialog --titel 'Kopierer fil...' --Målestok 'Venter på at fuldføre opgaven' 10 100 0


Følgende output vises efter 6 sekunders udførelse af scriptet:


Følgende output vises efter 10 sekunders udførelse af scriptet:


Konklusion

De forskellige måder at udvikle en statuslinje ved hjælp af et Bash-script er vist i denne vejledning for at hjælpe Bash-brugerne med at bruge statuslinjen på deres program.