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 pvPeate 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/bashkaja '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 dialoogLooge 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.