Zeichen auf den Terminal

facebraker

New Member
Hallo,

ich habe mir ein kleines Skript geschrieben, was mir ausrechnet wieviel Prozent der Dateien schon abgearbeitet worden sind:

Code:
#!/bin/sh
typeset -i gesamt
gesamt=`cat /tmp/dasicheck.log|wc -l`
#Kann entfernt werden wenn die Zahl aus einer Datei gelesen wird!
gesamt=`echo 321275`
typeset -i teil

while :
do
    teil=`cat /tmp/dasi.log|wc -l`
    ergebnis=`echo "scale=5; $teil/$gesamt*100" |bc`
    echo Dateien: $teil Fortschritt: $ergebnis %
    sleep 30  # 30s Pause
done

Jetzt bringt er aller 30Sekunden eine neue Zeile mit der Anzahl der Dateien und die Prozentwerte (soviel Kommastellen brauchte ich um erstmal zu sehen ob er was macht).

Ich möchte das jetzt als Progressbar realisieren.
Es sollen z.B. bei 49% (die 49 errechne ich ja) 49 "*" Zeichen von 100 dargestellt werden.
Nach 30Sekunden ebend 50 Zeichen wenn es mehr geworden ist.
Wie kann ich das realisieren, dass die Zeichen hintereinander in einer Zeile ausgespukt werden?

Danke

Gruss Alex
 
Hi,

ich habs raus:

Code:
echo -n '*'
schreibt ein Zeichen ohne LF.
Demnach mache gebe ich in der Schleife nur immer die Anzahl der
Zeichen aus, die dazu gekommen sind, = Progressbar.

Hatte aber noch tierische Probleme mit dem Rechnen. es lief zwar aber
Code:
bc
hat mir immer einen Fehler geworfen und der hat auf der Konsole gestört bzw. mein Fortschrittsbalken zerstört.

Ich habe dann noch 2 kleine Perl-Skripte gemacht, die mir beim Rechnen helfen, jetzt funktioniert es perfekt.

Wer interesse hat, einfach melden!

Gruss Alex
 
Back
Top