Looge Bashis edenemisriba

Looge Bashis Edenemisriba



Kui skripti täitmisel on vaja teatud aja oodata, on parem luua edenemisriba, mis teavitab kasutajat, et ta peaks mõnda aega ootama. Edenemisriba saab luua lihtsa Bashi skripti või mõnede sisseehitatud Linuxi käskude abil, nagu 'cv', 'dialog' jne. Selles õpetuses on näidatud edenemisribade loomise meetodid Bashi skripti abil.

Erinevad näited edenemisriba loomisest Bashis

Selles õpetuse osas on näidatud erinevad viisid, kuidas Bashis edenemisriba rakendada.

Näide 1: rakendage lihtsat edenemisriba ilma ühegi käsuta

Looge Bashi fail järgmise skriptiga, mis kuvab edenemisriba, kasutades märki '#' ja käsku 'une'. Käsku “printf” kasutatakse siin edenemisriba kuvamiseks. Edenemisriba on jagatud neljaks osaks. 25% kuvatakse 1 sekundi pärast. 50% kuvatakse 3 sekundi pärast. 75% kuvatakse 2 sekundi pärast. 100% kuvatakse 1 sekundi pärast.







#!/bin/bash

printf ' \n Oodake ülesande täitmist... \n \n '

#Oodake 1 sekund

magama 1

#Prindige edenemisriba esimene osa

printf '[##### ] 25%% valmis. \r '

#Oodake 3 sekundit

magama 3

#Prindi edenemisriba teine ​​osa

printf '[########## ] 50%% valmis. \r '

#Oodake 2 sekundit

magama 2

#Prindi edenemisriba kolmas osa

printf '[############### ] 75%% valmis. \r '

#Oodake 1 sekund

magama 1

#Prindi edenemisriba viimane osa

printf '[####################] 100%% valmis. \r '

printf ' \n \n Ülesanne täidetud. \n \n '

.



Pärast 1 sekundi möödumist skripti käivitamisest kuvatakse järgmine väljund:







Pärast 7 sekundit pärast skripti käivitamist kuvatakse järgmine väljund:



Näide 2: Rakendage edenemisriba, kasutades käsku 'Pv'.

Käsu 'pv' täisvorm on 'pipe viewer'. Seda kasutatakse toru kaudu edastatavate andmete edenemise jälgimiseks ja edenemisriba kuvamiseks vastavalt andmete suurusele. Seda käsku pole süsteemi vaikimisi installitud. Enne selle näite skripti harjutamist käivitage käsk 'pv' installimiseks järgmine käsk:

$ sudo asjakohane installida pv

Peate valima suure faili, mis kopeeritakse ühest asukohast teise. Looge Bashi fail järgmise skriptiga, mis kopeerib faili 'test.txt' praegusest asukohast asukohta '/home/fahmida/temp/'. Käsku 'pv' kasutatakse siin edenemisriba kuvamiseks. Edenemisriba kuvatakse faili 'test.txt' suuruse alusel.

#!/bin/bash

kaja 'Faili kopeerimine ühest asukohast teise.'

#Oodake 2 sekundit

magama 2

#Kopeerige fail sihtkohta

kass test.txt | pv -s $ ( stat -c % s test.txt ) > / Kodu / mõistmine / temp / test.txt

kaja 'Fail on kopeeritud.'

Pärast skripti täitmise lõpetamist kuvatakse järgmine väljund:

Näide 3: Rakendage edenemisriba, kasutades käsku 'Dialog'.

Teine viis edenemisriba rakendamiseks Bashis on käsu dialoog kasutamine. Seda käsku saab kasutada terminalis hea välimusega edenemisriba kuvamiseks. Selle edenemisriba abil saab kuvada mitut tüüpi vidinaid. Selle käsuga kuvatava edenemisriba ülesannet saab juhtida Bashi skripti abil. See edenemisriba ei ole vaikimisi süsteemi installitud. Selle edenemisriba süsteemi installimiseks käivitage järgmine käsk:

$ sudo asjakohane installida dialoog

Looge Bashi fail järgmise skriptiga, mis kuvab edenemisriba, kasutades käsku 'dialog'. Faili “/etc/passwd” kopeerimine asukohta “/home/fahmida/tempdir” kuvatakse edenemisriba abil. Edenemisriba on jagatud viieks osaks; iga osa kuvatakse 2 sekundi pärast. Suvandit –title kasutatakse käsus 'dialog', et kuvada edenemisriba pealkiri. Suvandit –gauge kasutatakse käsus “dialog”, et kuvada edenemisriba 10 rea kõrguse ja 100 tähemärgi laiusega. Edenemisriba kohal kuvatakse teade „Ootab ülesande lõpetamist”.

#!/bin/bash

#Initsialiseeri loendur

praegune_pos = 0

(

#Defineerige lõpmatu silmus

jaoks ( ( ;; ) )

teha

kass <
piiritleja

$current_pos

#Näita praegust loenduri väärtust

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

piiritleja

EOF


#Suurendage loendurit 20 võrra

( ( praegune_positsioon+= kakskümmend ) )

#Lõpetage silmus, kui loenduri väärtus on suurem kui 100

[ $current_pos -gt 100 ] && murda

#Oodake 2 sekundit pärast iga sammu

magama 2

tehtud

) | dialoog -- pealkiri 'Faili kopeerimine...' --mõõtur 'Ootan ülesande täitmist' 10 100 0


Pärast 6 sekundit pärast skripti käivitamist kuvatakse järgmine väljund:


Pärast 10 sekundi möödumist skripti käivitamisest kuvatakse järgmine väljund:


Järeldus

Selles õpetuses kuvatakse Bashi skripti abil edenemisriba arendamise erinevaid viise, et aidata Bashi kasutajatel oma programmis edenemisriba kasutada.