Fortschrittsbalken sind unschätzbar wertvoll, um visuelles Feedback während langwieriger Prozesse zu liefern und Benutzern eine klare Anzeige des Aufgabenfortschritts zu bieten. Obwohl Bash keine native Unterstützung für Fortschrittsbalken bietet, bieten mehrere externe Tools und Bibliotheken robuste Lösungen. Dieser Leitfaden untersucht drei verschiedene Methoden: die Verwendung des Befehls pv
, die Verwendung des Befehls dialog
und die Verwendung der ncurses
-Bibliothek.
Inhaltsverzeichnis
- Verwendung von
pv
für Fortschrittsbalken - Verwendung von
dialog
für Fortschrittsbalken - Verwendung von
ncurses
für erweiterte Fortschrittsbalken
Verwendung von pv
für Fortschrittsbalken
Der Befehl pv
(Pipe Viewer) eignet sich hervorragend zum Überwachen von Datenströmen und ist daher ideal zum Visualisieren des Fortschritts bei Dateiübertragungen oder ähnlichen datenintensiven Vorgängen. Seine Einfachheit und Effektivität sind erhebliche Vorteile.
Installation:
pv
ist über die meisten Paketmanager von Linux-Distributionen leicht verfügbar. Installieren Sie es mit dem spezifischen Befehl Ihrer Distribution (z. B. sudo apt-get install pv
unter Debian/Ubuntu, sudo yum install pv
unter CentOS/RHEL, sudo pacman -S pv
unter Arch Linux).
Verwendung:
Die grundlegende Syntax ist unkompliziert:
pv eingabedatei > ausgabedatei
Ersetzen Sie eingabedatei
durch Ihre Quelldatei und ausgabedatei
durch das gewünschte Ziel. pv
zeigt dynamisch einen Fortschrittsbalken an, der die Übertragungsrate und die geschätzte Fertigstellungszeit anzeigt.
Beispiel:
So kopieren Sie eine große Datei (große_datei.zip
) mit einem Fortschrittsbalken:
pv große_datei.zip > kopierte_große_datei.zip
Die Flexibilität von pv
geht über das Kopieren von Dateien hinaus. Es lässt sich nahtlos in Befehle integrieren, die Datenströme erzeugen. Um beispielsweise die Extraktion eines tar-Archivs zu überwachen:
tar -xvf großes_archiv.tar | pv > /dev/null
Hier verwirft /dev/null
die extrahierten Dateien und konzentriert sich ausschließlich auf die Fortschrittsüberwachung.
Verwendung von dialog
für Fortschrittsbalken
Der Befehl dialog
bietet eine größere Auswahl an interaktiven Dialogfeldern, darunter einen vielseitigen Fortschrittsbalken. Er bietet im Vergleich zu pv
mehr Kontrolle über das Aussehen des Balkens und ist nicht auf Datenströme beschränkt.
Installation:
Wie pv
ist dialog
in der Regel über den Paketmanager Ihrer Distribution verfügbar (z. B. sudo apt-get install dialog
, sudo yum install dialog
, sudo pacman -S dialog
).
Verwendung:
Der Fortschrittsbalken von dialog
verwendet die Option --gauge
. Sie geben den Titel, den Maximalwert (100 %) und den aktuellen Wert an. Das Skript aktualisiert iterativ den aktuellen Wert.
Beispiel:
Dieses Skript simuliert einen Prozess und zeigt einen Fortschrittsbalken an:
#!/bin/bash
for i in $(seq 1 100); do
dialog --gauge "Verarbeitung..." 10 60 $i
sleep 0.1
done
dialog --infobox "Vorgang abgeschlossen!" 10 30
Das Skript durchläuft 100 Mal die Schleife und erhöht den Fortschrittsbalken. sleep 0.1
fügt eine Verzögerung zur Demonstration hinzu. Machen Sie das Skript ausführbar mit chmod +x ihr_skript.sh
.
Verwendung von ncurses
für erweiterte Fortschrittsbalken
Für maximale Anpassung und Kontrolle bietet die ncurses
-Bibliothek unvergleichliche Flexibilität. ncurses
manipuliert die Terminalausgabe direkt und ermöglicht so die Erstellung von hochgradig angepassten Fortschrittsbalken. Dieser Ansatz erfordert jedoch ein tieferes Verständnis der Programmierung und der ncurses
-Funktionen.
Installation:
ncurses
ist oft vorinstalliert. Wenn nicht, installieren Sie es über den Paketmanager Ihrer Distribution (z. B. sudo apt-get install libncurses5-dev
, sudo yum install ncurses-devel
, sudo pacman -S ncurses
).
Verwendung:
Ein vollständiges ncurses
-Beispiel geht aufgrund seiner Komplexität über den Umfang dieses Leitfadens hinaus. Der Prozess beinhaltet die Initialisierung von ncurses
, das Zeichnen des Balkens mit Funktionen wie mvprintw
, das iterative Aktualisieren und schließlich das Bereinigen von ncurses
. Sie verwalten die Cursorposition manuell. Zahlreiche Online-Ressourcen bieten detaillierte ncurses
-Tutorials in C oder anderen Sprachen; die Anpassung dieser an Bash erfordert sorgfältige Aufmerksamkeit.
Dieser Artikel präsentierte drei Ansätze zur Erstellung von Bash-Fortschrittsbalken. Wählen Sie die Methode, die am besten zu Ihren Bedürfnissen und Fähigkeiten passt. pv
ist ideal für einfache Aufgaben; dialog
bietet mehr Kontrolle; und ncurses
bietet ultimative Anpassungsmöglichkeiten.