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 pvAnda 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/bashbergema '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 dialogBuat 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.