Cipta Bar Kemajuan dalam Bash

Cipta Bar Kemajuan Dalam Bash



Apabila diperlukan untuk menunggu jumlah masa yang tetap semasa pelaksanaan skrip, adalah lebih baik untuk mencipta bar kemajuan untuk memaklumkan pengguna untuk menunggu beberapa lama. Bar kemajuan boleh dibuat menggunakan skrip Bash mudah atau menggunakan beberapa arahan Linux terbina dalam seperti 'cv', 'dialog', dll. Kaedah mencipta bar kemajuan menggunakan skrip Bash ditunjukkan dalam tutorial ini.

Contoh Berbeza Mencipta Bar Kemajuan dalam Bash

Cara yang berbeza untuk melaksanakan bar kemajuan dalam Bash ditunjukkan dalam bahagian tutorial ini.

Contoh 1: Laksanakan Bar Kemajuan Mudah tanpa Sebarang Perintah

Buat fail Bash dengan skrip berikut yang memaparkan bar kemajuan menggunakan aksara '#' dan arahan 'tidur'. Perintah 'printf' digunakan di sini untuk memaparkan bar kemajuan. Bar kemajuan dibahagikan kepada empat bahagian. 25% dipaparkan selepas 1 saat. 50% dipaparkan selepas 3 saat. 75% dipaparkan selepas 2 saat. 100% dipaparkan selepas 1 saat.







#!/bin/bash

printf ' \n Tunggu untuk menyelesaikan tugasan... \n \n '

#Tunggu 1 saat

tidur 1

#Cetak bahagian pertama bar kemajuan

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

#Tunggu selama 3 saat

tidur 3

#Cetak bahagian kedua bar kemajuan

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

#Tunggu selama 2 saat

tidur 2

#Cetak bahagian ketiga bar kemajuan

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

#Tunggu 1 saat

tidur 1

#Cetak bar kemajuan terakhir

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

printf ' \n \n Tugas selesai. \n \n '

.



Output berikut muncul selepas 1 saat melaksanakan skrip:







Output berikut muncul selepas 7 saat melaksanakan skrip:



Contoh 2: Laksanakan Bar Kemajuan Menggunakan Perintah 'Pv'.

Bentuk penuh arahan 'pv' ialah 'pelihat paip'. Ia digunakan untuk memantau kemajuan data yang dilalui melalui paip dan memaparkan bar kemajuan berdasarkan saiz data. Perintah ini tidak dipasang secara lalai dalam sistem. Jalankan arahan berikut untuk memasang arahan 'pv' sebelum mempraktikkan skrip contoh ini:

$ sudo apt pasang pv

Anda perlu memilih fail bersaiz besar yang disalin dari satu lokasi ke lokasi lain. Cipta fail Bash dengan skrip berikut yang menyalin fail 'test.txt' dari lokasi semasa ke lokasi '/home/fahmida/temp/'. Perintah 'pv' digunakan di sini untuk memaparkan bar kemajuan. Bar kemajuan dipaparkan berdasarkan saiz fail 'test.txt'.

#!/bin/bash

bergema 'Menyalin fail dari satu lokasi ke lokasi lain.'

#Tunggu selama 2 saat

tidur 2

#Salin fail ke destinasi

kucing test.txt | pv -s $ ( stat -c % s test.txt ) > / rumah / persefahaman / temp / test.txt

bergema 'Fail telah disalin.'

Output berikut dipaparkan selepas menyelesaikan pelaksanaan skrip:

Contoh 3: Laksanakan Bar Kemajuan Menggunakan Perintah 'Dialog'.

Cara lain untuk melaksanakan bar kemajuan dalam Bash ialah menggunakan arahan 'dialog'. Perintah ini boleh digunakan untuk memaparkan bar kemajuan yang kelihatan baik di terminal. Banyak jenis widget boleh dipaparkan menggunakan bar kemajuan ini. Tugas bar kemajuan yang dipaparkan oleh arahan ini boleh dikawal oleh skrip Bash. Bar kemajuan ini tidak dipasang dalam sistem secara lalai. Jalankan arahan berikut untuk memasang bar kemajuan ini dalam sistem:

$ sudo apt pasang dialog

Buat fail Bash dengan skrip berikut yang memaparkan bar kemajuan menggunakan arahan 'dialog'. Tugas menyalin fail “/etc/passwd” ke dalam lokasi “/home/fahmida/tempdir” dipaparkan menggunakan bar kemajuan. Bar kemajuan dibahagikan kepada lima bahagian; setiap bahagian dipaparkan selepas 2 saat. Pilihan -title digunakan dalam arahan 'dialog' untuk memaparkan tajuk bar kemajuan. Pilihan -gauge digunakan dalam arahan 'dialog' untuk memaparkan bar kemajuan dengan ketinggian 10 baris dan lebar 100 aksara. Mesej 'Menunggu untuk menyelesaikan tugas' dipaparkan di atas bar kemajuan.

#!/bin/bash

#Memulakan kaunter

semasa_pos = 0

(

#Tentukan gelung tak terhingga

untuk ( ( ;; ) )

buat

kucing <
pembatas

$current_pos

#Tunjukkan nilai pembilang semasa

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

pembatas

EOF


#Naikkan kaunter sebanyak 20

( ( current_pos+= dua puluh ) )

#Tamatkan daripada gelung apabila nilai pembilang melebihi 100

[ $current_pos -gt 100 ] && rehat

#Tunggu selama 2 saat selepas setiap kenaikan

tidur 2

selesai

) | dialog --tajuk 'Menyalin fail...' --pengukur 'Menunggu untuk menyelesaikan tugas' 10 100 0


Output berikut muncul selepas 6 saat melaksanakan skrip:


Output berikut muncul selepas 10 saat melaksanakan skrip:


Kesimpulan

Cara yang berbeza untuk membangunkan bar kemajuan menggunakan skrip Bash ditunjukkan dalam tutorial ini untuk membantu pengguna Bash menggunakan bar kemajuan pada program mereka.