• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

bash dialog 2 Prozentbalken

goodski

Newbie
Hallo zusammen,

ich habe derzeit ein Skript welches 2 Schleifen beinhaltet und diverse Dinge tut.
hier mal die vereinfachte Version was für die Erklärung meines Vorhabens reichen sollte.
Code:
#!/bin/bash

ende1=5
ende2=5

# begin der 1. Schleife 
for ((i="1";i<"$ende1";i+=1)); do
let PERC=i*100/ende2
echo "gesamt: "$PERC
.
.
.
.
# begin 2. schleife 
		for ((b="1";b<="$ende2";b+=1)); do
.
.
.
.
. 
		done
        # Ende 2. Schleife Umsaetze

done
#Ende 1. Schleife
)|dialog --gauge "blabla" 7 20 1

Den Fortschritt der ersten Schleife übergebe ich als Prozentbalken an dialog. Soweit so gut.
Mittlerweile dauern die Dinge in der 2. Schleife recht lange und meine ungeduldigen user neigen dazu nicht immer ausreichend zu warten. :) Der ein oder andere kennt das.

Die Frage ist: Kann ich zusätzlich die 2. Schleife auch als Prozentbalken zusätzlich mit anzeigen lassen?
 

spoensche

Moderator
Teammitglied
Je nachdem wie viele User das Script gleichzeitig ausführen und wie viel Leistung der Rechner bringt ist es doch klar, dass es länger dauert. Lass den Prozentbalken einfach weg und die Performance steigert sich.
 
A

Anonymous

Gast
GUCCI schrieb:
meine ungeduldigen user neigen dazu nicht immer ausreichend zu warten. :) Der ein oder andere kennt das.
Die Frage ist: Kann ich zusätzlich die 2. Schleife auch als Prozentbalken zusätzlich mit anzeigen lassen?
Die Lösung dürfte nicht noch weitere Fortschrittsanzeigen sein. Ob diese User jetzt einen Balken oder 10 Balken vor sich haben ist denen vollkommen egal, die wollen weiterarbeiten und nicht ewig Eieruhren anstarren. Wenn es nicht schnell genug geht, dann werden die Fenster geschlossen oder in den Hintergrund geschickt und versucht normal weiterzuarbeiten.

Entweder die Fenstereigenschaften so gestalten, dass es dem User nicht möglich ist, das Fenster zu umgehen, zu schließen oder in den Hintergrund zu schieben. Der Kunde also mit der Fensterverwaltung gezwungen wird, solange zu warten bis alles vorbei ist.

Oder eine andere Möglichkeit, während der Laufzeit des Scriptes Sperrdateien anlegen, und aus den anderen Befehlen die erst nach vollständigen Durchlauf dieses Scriptes ausgeführt werden dürfen, dann bei vorhandensein dieser Sperrdateien Fehler oder Warnmeldungen ausgeben und die Abarbeitung dieser Befehle so lange blockieren wie Sperrdateien vorhanden sind.

Aber alles nur Windowsmethoden. Richtig währe die Befehle und Scripte so zu optimieren das sie in einer vernünftiger Zeit durchlaufen. Eventuell lassen sich bestimmte Dinge auslagern, paralellisieren oder von untergeordneten Diensten regelmäßig die Daten vorbehandeln und aufbereiten, so das das Script nicht die ganze Arbeit immer vollständig selbst machen muss während der User wartet. Notfalls muss man eben auch mal selbst was programmieren wenn die Scriptsprachen für bestimmte Aufgaben nur viel zu umständlich und viel zu langsam sind.

robi
 
OP
G

goodski

Newbie
Das auf jeden Fall interessante Aspekte die man durchaus berücksichtigen sollte. Vielen Dank dafür.

Aber um auf die eigentliche Frage zurück zu kommen. Seht ihr eine Möglichkeit das entsprechend umzusetzen?
 

spoensche

Moderator
Teammitglied
Wenn die Umsätze in einer Datenbank gespeichert sind, könnte der User sich diese einfach in OpenOffice anzeigen lassen. Dafür müsstest du dann OpenOffice an die Datenbank anbinden.
 
OP
G

goodski

Newbie
@spoensche in der Umsatzschleife werde keine Umsaetze aus einer DB abgefragt oder aehnliches.

Das Skript generiert verschiedene Dateien. (Ja ich weis Perl wäre hier das bessere Werkzeug.) Das ist jedoch ein andere Baustelle.

Vlt. habe ich meine Frage auch falsch gestellt.

Ich wollte wissen ob es mit dialog möglich ist 2. Prozentbalken (Gauge) gleichzeitig laufen zu lassen, oder ob es lediglich möglich ist zeitgleich nur einen Prozentbalken mit Werten zu beliefern.
 
Oben