whiptail Ubuntu ve diğer birçok dağıtımda önceden yüklenmiş olarak gelir ve tam ekran (ancak yine de terminal tabanlı) ilerleme öğelerini gösterir.
dialogbir üst kümedir whiptail, bu nedenle bu örnek her ikisiyle de eşit derecede iyi çalışır. Daha gelişmiş UI öğeleri sağlar, bu nedenle dosya seçiciler ve formlar gibi kullanıcı etkileşimi arıyorsanız kullanışlı olabilir, ancak birçok sisteme önceden yüklenmemiş olması dezavantajına sahiptir.


for i in $(seq 1 100)
do
sleep 0.1
echo $i
done | whiptail --title 'Test script' --gauge 'Running...' 6 60 0
Komut dosyası çıktısının yüzde olarak yorumlandığını unutmayın, bu nedenle çıktılarınızı buna göre ayarlamanız gerekebilir.
Whiptail ve Dialog ayrıca metni çalışma zamanında oldukça şifreli bir sözdizimi ile değiştirmenize izin verir:
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
pvbir dosya veya akışın üzerinden aktarılan ilerlemeyi gösterir. Ancak, döngü gibi özel bir işlemin ilerlemesini göstermek için (kolayca?) Kullanılamaz. Özellikle akışlar için tasarlanmıştır.
$ head -c 1G < /dev/urandom | pv -s 1G > /dev/null
277MB 0:00:16 [17.4MB/s] [========> ] 27% ETA 0:00:43
pvKullanışlı olduğu bazı gerçek dünya örnekleri :
# 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
Tek satırlı ilerleme çubuklarını pvveya stilinde veren herhangi bir komut bilmiyorum wget, ancak diğerleri burada paylaştığı gibi bu işlevi ekleyecek çok sayıda basit Bash / Perl / sed komut dosyası var.