Ich mag das Aussehen der Ausgabe von bar
Dieses Skript wird jedoch nur für Eingabe- / Ausgabevorgänge verwendet.
Wie kann ich es als Ersatz für den Schlaf verwenden, aber mit visuellem Feedback?
sleep 10
quelle
Ich mag das Aussehen der Ausgabe von bar
Dieses Skript wird jedoch nur für Eingabe- / Ausgabevorgänge verwendet.
Wie kann ich es als Ersatz für den Schlaf verwenden, aber mit visuellem Feedback?
sleep 10
Ich konnte keinen Weg finden, dies mit zu tun bar
. Möglicherweise interessieren Sie sich jedoch für diese anderen Befehle, die dasselbe tun und Ihren Anforderungen besser entsprechen.
Diese Methode überschreibt einfach das, was zuvor auf dem Bildschirm angezeigt wurde, mit einem größeren Fortschrittsbalken. Einfach aber effektiv.
Beispiel ex.bash
:
#!/bin/bash
echo -ne '##### (33%)\r'
sleep 1
echo -ne '############# (66%)\r'
sleep 1
echo -ne '####################### (100%)\r'
echo -ne '\n'
Der Befehl pv
bietet Fortschrittsbalkenfunktionen. In diesem Artikel mit dem Titel: Ein Unix-Dienstprogramm, das Sie kennen sollten: Pipe Viewer finden Sie ausführlichere Beispiele .
$ pv access.log | gzip > access.log.gz
611MB 0:00:11 [58.3MB/s] [=> ] 15% ETA 0:00:59
Mit dem folgenden Beispielcode können Sie mithilfe einer einfachen Schleife Ihren eigenen "Spinner" erstellen. Innerhalb der Schleife können Sie beliebige Befehle einbetten. Dieser Code stammt aus diesem Artikel mit dem Titel: Kann ich in Bash einen Spinner machen? .
#!/bin/bash
sp='/-\|'
printf ' '
for i in $(seq 3); do
printf '\b%.1s' "$sp"
sp=${sp#?}${sp%???}
sleep 1
done
echo ''
Es gibt einen Befehl namens, dialog
der so ziemlich das macht, was Sie wollen. Es werden grafische Dialoge verwendet, die jedoch auf Ncurses basieren, sodass sie in fast jedem Terminal und / oder Skript funktionieren, sofern Ncurses unterstützt werden. Sie können die gesamte dialog
Dokumentation auf der Website des Projekts sehen .
Bildschirmfoto
Die Implementierung scheint trivial zu sein. Die unten stehende Bash-Funktion (Balken) verhält sich wie Ihr
bar
Skript (basierend auf dem kurzen Screencast). Die Größe wird auch dynamisch mit der Terminalbreite geändert (beim nächsten Aufruf vonbar
).Verwendungszweck
Beispiel für regelmäßigen Fortschritt:
Beispiel für zufälligen Fortschritt:
quelle