Izveidojiet norises joslu programmā Bash

Izveidojiet Norises Joslu Programma Bash



Ja skripta izpildes laikā ir jāgaida noteikts laiks, labāk ir izveidot progresa joslu, lai informētu lietotāju, ka viņš kādu laiku jāgaida. Progresa joslu var izveidot, izmantojot vienkāršu Bash skriptu vai dažas iebūvētas Linux komandas, piemēram, 'cv', 'dialog' utt. Šajā apmācībā ir parādītas progresa joslu izveides metodes, izmantojot Bash skriptu.

Dažādi piemēri progresa joslas izveidei programmā Bash

Šajā apmācības daļā ir parādīti dažādi veidi, kā ieviest norises joslu programmā Bash.

1. piemērs. Ieviesiet vienkāršu norises joslu bez komandas

Izveidojiet Bash failu ar šādu skriptu, kas parāda progresa joslu, izmantojot rakstzīmi “#” un komandu “sleep”. Šeit tiek izmantota komanda “printf”, lai parādītu progresa joslu. Progresa josla ir sadalīta četrās daļās. 25% tiek parādīti pēc 1 sekundes. 50% tiek parādīti pēc 3 sekundēm. 75% tiek parādīti pēc 2 sekundēm. 100% tiek parādīti pēc 1 sekundes.







#!/bin/bash

printf ' \n Pagaidiet, lai pabeigtu uzdevumu... \n \n '

#Pagaidiet 1 sekundi

Gulēt 1

#Izdrukājiet progresa joslas pirmo daļu

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

#Pagaidiet 3 sekundes

Gulēt 3

#Izdrukājiet progresa joslas otro daļu

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

#Pagaidiet 2 sekundes

Gulēt 2

#Izdrukājiet progresa joslas trešo daļu

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

#Pagaidiet 1 sekundi

Gulēt 1

#Izdrukājiet progresa joslas pēdējo

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

printf ' \n \n Uzdevums izpildīts. \n \n '

.



Pēc 1 sekundes pēc skripta izpildes tiek parādīta šāda izvade:







Pēc 7 sekundēm pēc skripta izpildes tiek parādīta šāda izvade:



2. piemērs. Ieviesiet progresa joslu, izmantojot komandu “Pv”.

Komandas “pv” pilna forma ir “pipe viewer”. To izmanto, lai uzraudzītu caur cauruli nodoto datu norisi un parādītu progresa joslu, pamatojoties uz datu lielumu. Šī komanda sistēmā nav instalēta pēc noklusējuma. Pirms šī piemēra skripta praktizēšanas palaidiet šo komandu, lai instalētu komandu “pv”.

$ sudo apt uzstādīt pv

Jums ir jāizvēlas liela izmēra fails, kas tiek kopēts no vienas vietas uz citu. Izveidojiet Bash failu ar šādu skriptu, kas kopē failu “test.txt” no pašreizējās atrašanās vietas uz vietu “/home/fahmida/temp/”. Šeit tiek izmantota komanda “pv”, lai parādītu progresa joslu. Progresa josla tiek parādīta, pamatojoties uz faila “test.txt” lielumu.

#!/bin/bash

atbalss 'Faila kopēšana no vienas vietas uz citu.'

#Pagaidiet 2 sekundes

Gulēt 2

# Kopējiet failu uz galamērķi

kaķis test.txt | pv -s $ ( stat -c % s test.txt ) > / mājas / saprašana / temp / test.txt

atbalss 'Fails ir nokopēts.'

Pēc skripta izpildes tiek parādīta šāda izvade:

3. piemērs. Ieviesiet norises joslu, izmantojot komandu “Dialogs”.

Vēl viens veids, kā ieviest progresa joslu programmā Bash, ir komandas “dialogs” izmantošana. Šo komandu var izmantot, lai terminālī parādītu izskatīgu progresa joslu. Izmantojot šo progresa joslu, var parādīt daudzu veidu logrīkus. Progresa joslas uzdevumu, ko parāda šī komanda, var kontrolēt ar Bash skriptu. Šī progresa josla pēc noklusējuma nav instalēta sistēmā. Palaidiet šo komandu, lai sistēmā instalētu šo progresa joslu:

$ sudo apt uzstādīt dialoglodziņš

Izveidojiet Bash failu ar šādu skriptu, kas parāda progresa joslu, izmantojot komandu “dialogs”. Uzdevums kopēt failu “/etc/passwd” vietā “/home/fahmida/tempdir” tiek parādīts, izmantojot progresa joslu. Progresa josla ir sadalīta piecās daļās; katra daļa tiek parādīta pēc 2 sekundēm. Opcija –title tiek izmantota komandā “dialogs”, lai parādītu progresa joslas nosaukumu. Opcija –gauge tiek izmantota komandā “dialogs”, lai parādītu progresa joslu ar 10 rindiņu augstumu un 100 rakstzīmju platumu. Virs norises joslas tiek parādīts ziņojums “Gaida uzdevuma pabeigšanu”.

#!/bin/bash

#Inicializējiet skaitītāju

pašreizējā_poz = 0

(

#Definējiet bezgalīgu cilpu

priekš ( ( ;; ) )

darīt

kaķis <
norobežotājs

$current_pos

#Rādīt pašreizējo skaitītāja vērtību

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

norobežotājs

EOF


#Palieliniet skaitītāju par 20

( ( pašreizējā_pozīcija+= divdesmit ) )

#Pārtraukt cilpu, ja skaitītāja vērtība ir lielāka par 100

[ $current_pos -gt 100 ] && pārtraukums

#Pagaidiet 2 sekundes pēc katra pieauguma

Gulēt 2

darīts

) | dialoglodziņš --nosaukums 'Notiek faila kopēšana...' -- gabarīts 'Gaida uzdevuma pabeigšanu' 10 100 0


Pēc 6 sekundēm pēc skripta izpildes tiek parādīta šāda izvade:


Pēc 10 sekundēm pēc skripta izpildes tiek parādīta šāda izvade:


Secinājums

Šajā apmācībā ir parādīti dažādi veidi, kā izveidot progresa joslu, izmantojot Bash skriptu, lai palīdzētu Bash lietotājiem izmantot progresa joslu savā programmā.