as times goes by
Für den/die BenutzerIn ist es immer ganz angenehm, wenn sich auf den Bildschirm was bewegt damit er/sie weiß, das Programm läuft noch, auch wenn es etwas längert dauert.
In der GUI Welt wurden deshalb Dinge wie der Fortschrittsbalken oder die drehende Sanduhr eingeführt. Auf der Konsole helfen simple ASCII-Zeichen das Gefühl das sich was tut zu vermitteln.
Das kann dann beispielsweise so aussehen, wie in den folgenden beiden Beispielen. Statt
for a in `seq 1 100`; do
...
könnte man in einem Skript eine Reihe von Dateien verarbeiten
for file in `ls *.txt`; do
...
Und wenn in der Schleife wirklich was passiert, kann auch auf den sleep Befehl verzichtet werden.
1 #!/bin/bash
2 c=(\| \\ - \| / -)
3 del=‘\b‘
4
5 echo -n "spinning wheel: "
6
7 for a in `seq 1 100`; do
8 let i=($a+1)%6
9 echo -n ${c[$i]}
10 echo -ne $del
11 sleep 0.2
12 done
13
14 echo
15 echo -n "oder: "
16
17 c=(. o 0 O)
18
19 for a in `seq 1 200`; do
20 let i=($a+1)%4
21 echo -ne $del
22 echo -n ${c[$i]}
23 sleep 0.1
24 done

Eine Antwort schreiben