whiptail hadir dengan pra-instal di Ubuntu dan banyak distro lainnya, dan akan menampilkan elemen progres layar penuh (tapi masih berbasis terminal).
dialogadalah superset dari whiptail, jadi contoh ini akan bekerja sama baiknya dengan keduanya. Itu memang menyediakan elemen UI yang lebih maju, jadi mungkin berguna jika Anda mencari interaksi pengguna seperti pemetik file dan formulir, tetapi memiliki kelemahan tidak datang diinstal pada banyak sistem.


for i in $(seq 1 100)
do
sleep 0.1
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0
Perhatikan bahwa output skrip ditafsirkan sebagai persentase, jadi Anda mungkin harus menyesuaikan output Anda sesuai.
Whiptail dan Dialog juga memungkinkan Anda untuk memodifikasi teks pada saat dijalankan melalui sintaksis yang agak samar:
phases=(
'Locating Jebediah Kerman...'
'Motivating Kerbals...'
'Treating Kessler Syndrome...'
'Recruiting Kerbals...'
)
for i in $(seq 1 100); do
sleep 0.1
if [ $i -eq 100 ]; then
echo -e "XXX\n100\nDone!\nXXX"
elif [ $(($i % 25)) -eq 0 ]; then
let "phase = $i / 25"
echo -e "XXX\n$i\n${phases[phase]}\nXXX"
else
echo $i
fi
done | whiptail --title 'Kerbal Space Program' --gauge "${phases[0]}" 6 60 0
pvmenunjukkan progres file atau stream yang disalurkan melalui file tersebut. Namun itu tidak dapat (mudah?) Digunakan untuk menunjukkan kemajuan operasi kustom seperti loop. Ini dirancang khusus untuk streaming.
$ head -c 1G < /dev/urandom | pv -s 1G > /dev/null
277MB 0:00:16 [17.4MB/s] [========> ] 27% ETA 0:00:43
Beberapa contoh dunia nyata pvsangat berguna:
# progress while importing a DB dump
pv mybigfile.sql | mysql -uroot -p dbname
# importing straight from a remote server
ssh user@server 'cat mybigfile.sql.gz' | pv | gzip -cd | mysql -uroot -p dbname
# taking a snapshot of a btrfs partition
btrfs send /snapshots/$date | pv | btrfs receive /mnt/backup/root
Saya tidak tahu ada perintah yang memberikan progress bar satu-baris dalam gaya pvatau wget, tetapi ada banyak skrip Bash / Perl / sed sederhana yang akan menambahkan fungsionalitas itu, seperti yang telah dibagikan orang lain di sini.