Luo edistymispalkki Bashissa

Luo Edistymispalkki Bashissa



Kun komentosarjan suorittamisen aikana on odotettava tietty aika, on parempi luoda edistymispalkki, joka kehottaa käyttäjää odottamaan jonkin aikaa. Edistymispalkki voidaan luoda käyttämällä yksinkertaista Bash-komentosarjaa tai joitain sisäänrakennettuja Linux-komentoja, kuten 'cv', 'dialog' jne. Tässä opetusohjelmassa esitetään edistymispalkkien luontimenetelmät Bash-komentosarjalla.

Erilaisia ​​esimerkkejä edistymispalkin luomisesta Bashissa

Eri tavat toteuttaa edistymispalkki Bashissa esitetään tässä opetusohjelman osassa.

Esimerkki 1: Toteuta yksinkertainen edistymispalkki ilman komentoja

Luo Bash-tiedosto seuraavalla komentosarjalla, joka näyttää edistymispalkin käyttämällä #-merkkiä ja 'sleep'-komentoa. 'printf'-komentoa käytetään tässä näyttämään edistymispalkki. Edistymispalkki on jaettu neljään osaan. 25 % näkyy 1 sekunnin kuluttua. 50 % tulee näkyviin 3 sekunnin kuluttua. 75 % näkyy 2 sekunnin kuluttua. 100 % näkyy 1 sekunnin kuluttua.







#!/bin/bash

printf ' \n Odota tehtävän suorittamista... \n \n '

#Odota 1 sekunti

nukkua 1

#Tulosta edistymispalkin ensimmäinen osa

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

#Odota 3 sekuntia

nukkua 3

#Tulosta edistymispalkin toinen osa

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

#Odota 2 sekuntia

nukkua 2

#Tulosta edistymispalkin kolmas osa

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

#Odota 1 sekunti

nukkua 1

#Tulosta edistymispalkin viimeinen osa

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

printf ' \n \n Tehtävä suoritettu. \n \n '

.



Seuraava tulos tulee näkyviin 1 sekunnin kuluttua komentosarjan suorittamisesta:







Seuraava tulos tulee näkyviin 7 sekunnin kuluttua skriptin suorittamisesta:



Esimerkki 2: Toteuta edistymispalkki käyttämällä 'Pv'-komentoa

'Pv'-komennon täysi muoto on 'pipe viewer'. Sitä käytetään putken läpi kulkevien tietojen etenemisen seuraamiseen ja edistymispalkin näyttämiseen tietojen koon perusteella. Tätä komentoa ei ole asennettu oletusarvoisesti järjestelmään. Suorita seuraava komento asentaaksesi 'pv' -komennon ennen tämän esimerkin komentosarjan harjoittamista:

$ sudo apt Asentaa pv

Sinun on valittava suurikokoinen tiedosto, joka kopioidaan paikasta toiseen. Luo Bash-tiedosto seuraavalla komentosarjalla, joka kopioi 'test.txt'-tiedoston nykyisestä sijainnista '/home/fahmida/temp/'-sijaintiin. 'pv'-komentoa käytetään tässä näyttämään edistymispalkki. Edistymispalkki näytetään test.txt-tiedoston koon mukaan.

#!/bin/bash

kaiku 'Kopioidaan tiedostoa paikasta toiseen.'

#Odota 2 sekuntia

nukkua 2

#Kopioi tiedosto kohteeseen

kissa testi.txt | pv -s $ ( stat -c % s testi.txt ) > / Koti / ymmärtäminen / temp / testi.txt

kaiku 'Tiedosto on kopioitu.'

Seuraava tulos näytetään, kun komentosarja on suoritettu:

Esimerkki 3: Toteuta edistymispalkki käyttämällä 'Dialog'-komentoa

Toinen tapa toteuttaa edistymispalkki Bashissa on 'dialog'-komennon käyttö. Tätä komentoa voidaan käyttää näyttämään hyvännäköinen edistymispalkki terminaalissa. Tämän edistymispalkin avulla voidaan näyttää monenlaisia ​​widgetejä. Tämän komennon näyttämän edistymispalkin tehtävää voidaan ohjata Bash-komentosarjalla. Tätä edistymispalkkia ei ole asennettu järjestelmään oletusarvoisesti. Asenna tämä edistymispalkki järjestelmään suorittamalla seuraava komento:

$ sudo apt Asentaa valintaikkuna

Luo Bash-tiedosto seuraavalla komentosarjalla, joka näyttää edistymispalkin käyttämällä 'dialog'-komentoa. Tehtävä kopioida /etc/passwd-tiedosto sijaintiin '/home/fahmida/tempdir' näytetään edistymispalkin avulla. Edistymispalkki on jaettu viiteen osaan; jokainen osa tulee näkyviin 2 sekunnin kuluttua. -title-vaihtoehtoa käytetään 'dialog'-komennossa näyttämään edistymispalkin otsikko. -gauge-vaihtoehtoa käytetään 'dialog'-komennossa näyttämään edistymispalkki, jonka korkeus on 10 riviä ja leveys 100 merkkiä. 'Odotetaan tehtävän suorittamista' -viesti näkyy edistymispalkin yläpuolella.

#!/bin/bash

#Alusta laskuri

nykyinen_pos = 0

(

#Määrittele ääretön silmukka

varten ( ( ;; ) )

tehdä

kissa <
erotin

$current_pos

#Näytä nykyinen laskurin arvo

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

erotin

EOF


#Kasvata laskuria 20:llä

( ( nykyinen_pos.+= kaksikymmentä ) )

#Lopeta silmukasta, kun laskurin arvo on yli 100

[ $current_pos -gt 100 ] && tauko

#Odota 2 sekuntia jokaisen lisäyksen jälkeen

nukkua 2

tehty

) | valintaikkuna -- otsikko 'Kopioidaan tiedostoa...' --arvioida 'Odotetaan tehtävän suorittamista' 10 100 0


Seuraava tulos tulee näkyviin 6 sekunnin kuluttua skriptin suorittamisesta:


Seuraava tulos tulee näkyviin 10 sekunnin kuluttua skriptin suorittamisesta:


Johtopäätös

Tässä opetusohjelmassa esitetään eri tavat kehittää edistymispalkki Bash-komentosarjan avulla, jotta Bash-käyttäjät voivat käyttää edistymispalkkia ohjelmassaan.