Uzun süreçler sırasında görsel geri bildirim sağlamak için ilerleme çubukları çok değerlidir ve kullanıcılara görevin ilerlemesi hakkında net bir gösterge sunar. Bash’in yerel ilerleme çubuğu desteği olmamasına rağmen, birkaç harici araç ve kütüphane sağlam çözümler sunmaktadır. Bu kılavuz, üç farklı yöntemi ele almaktadır: pv
komutunu kullanma, dialog
komutunu kullanma ve ncurses
kütüphanesini kullanma.
İçerik Tablosu
- İlerleme Çubukları için
pv
Kullanımı - İlerleme Çubukları için
dialog
Kullanımı - Gelişmiş İlerleme Çubukları için
ncurses
Kullanımı
İlerleme Çubukları için pv
Kullanımı
pv
(pipe viewer) komutu, veri akışlarını izlemede mükemmeldir ve dosya transferlerinde veya benzeri veri yoğun işlemlerde ilerlemenin görselleştirilmesi için idealdir. Basitliği ve etkinliği önemli avantajlardır.
Kurulum:
pv
, çoğu Linux dağıtım paket yöneticisi aracılığıyla kolayca kullanılabilir. Dağıtımınızın belirli komutunu kullanarak yükleyin (örneğin, Debian/Ubuntu’da sudo apt-get install pv
, CentOS/RHEL’de sudo yum install pv
, Arch Linux’ta sudo pacman -S pv
).
Kullanım:
Temel sözdizimi basittir:
pv input_file > output_file
input_file
yerine kaynak dosyanızı ve output_file
yerine hedef dosyanızı yerleştirin. pv
, aktarım hızını ve tahmini tamamlanma süresini gösteren bir ilerleme çubuğunu dinamik olarak görüntüler.
Örnek:
Büyük bir dosyayı (large_file.zip
) ilerleme çubuğu ile kopyalamak için:
pv large_file.zip > copied_large_file.zip
pv
‘nin esnekliği dosya kopyalamanın ötesine geçer. Veri akışı oluşturan komutlarla sorunsuz bir şekilde entegre olur. Örneğin, bir tar arşivinin çıkarılmasını izlemek için:
tar -xvf large_archive.tar | pv > /dev/null
Burada, /dev/null
çıkarılan dosyaları atar ve yalnızca ilerleme izleme odaklanır.
İlerleme Çubukları için dialog
Kullanımı
dialog
komutu, çok yönlü bir ilerleme çubuğu da dahil olmak üzere daha geniş bir etkileşimli iletişim kutusu yelpazesi sunar. pv
‘ye kıyasla çubuğun görünümü üzerinde daha fazla kontrol sağlar ve veri akışlarıyla sınırlı değildir.
Kurulum:
pv
gibi, dialog
da genellikle dağıtımınızın paket yöneticisi aracılığıyla kullanılabilir (örneğin, sudo apt-get install dialog
, sudo yum install dialog
, sudo pacman -S dialog
).
Kullanım:
dialog
‘un ilerleme çubuğu --gauge
seçeneğini kullanır. Başlığı, maksimum değeri (%100) ve geçerli değeri belirtirsiniz. Komut dosyası, geçerli değeri yinelemeli olarak günceller.
Örnek:
Bu komut dosyası bir işlemi simüle eder ve bir ilerleme çubuğu görüntüler:
#!/bin/bash
for i in $(seq 1 100); do
dialog --gauge "İşleniyor..." 10 60 $i
sleep 0.1
done
dialog --infobox "İşlem tamamlandı!" 10 30
Komut dosyası 100 kez döngüye girer ve ilerleme çubuğunu artırır. sleep 0.1
gösterim için bir gecikme ekler. Komut dosyasını chmod +x your_script.sh
kullanarak çalıştırılabilir yapın.
Gelişmiş İlerleme Çubukları için ncurses
Kullanımı
Maksimum özelleştirme ve kontrol için ncurses
kütüphanesi, benzersiz bir esneklik sağlar. ncurses
doğrudan terminal çıktısını yönetir ve son derece özelleştirilmiş ilerleme çubukları oluşturmayı sağlar. Ancak, bu yaklaşım, programlama ve ncurses
fonksiyonları hakkında daha derin bir anlayış gerektirir.
Kurulum:
ncurses
genellikle önceden yüklenir. Değilse, dağıtımınızın paket yöneticisini kullanarak yükleyin (örneğin, sudo apt-get install libncurses5-dev
, sudo yum install ncurses-devel
, sudo pacman -S ncurses
).
Kullanım:
Karmaşıklığı nedeniyle tam bir ncurses
örneği bu kılavuzun kapsamının dışındadır. İşlem, ncurses
‘i başlatmayı, mvprintw
gibi fonksiyonları kullanarak çubuğu çizmeyi, yinelemeli olarak güncellemeyi ve son olarak ncurses
‘i temizlemeyi içerir. İmleç konumunu manuel olarak yönetirsiniz. Çok sayıda çevrimiçi kaynak, C veya diğer dillerde ayrıntılı ncurses
eğitimleri sunmaktadır; bunları Bash’e uyarlamak dikkatli bir çalışma gerektirir.
Bu makale, Bash ilerleme çubukları oluşturmanın üç yöntemini sundu. İhtiyaçlarınıza ve becerilerinize en uygun yöntemi seçin. pv
basit görevler için idealdir; dialog
daha fazla kontrol sunar; ve ncurses
nihai özelleştirmeyi sağlar.