-
re
hallo
weiteres Problem nachdem / und * und so ging muss ich jetzt vergleichen da die Shell anscheinend diesen Code nicht kann:
if [ $ausgleichszeit < 0 ]; then
echo zu viel gesurft
else
echo zu wenig gesurft
fi
wobei in $ausgleichszeit ein wert wie 3.6654654 steht und die Shell dann immer zu viel gesurft ausgibt. Geht das auch in Perl oder mach ich in der Shell nen Fehler??
MFG
Maruu
-
Kapitel 3.14 vom 3. das in meiner Signatur
-
re
Danke erstmal hab mal nachgeschaut aber nur Ganzzahlvergleiche gefunden ich hab aber Komma Werte also Integer, wie kann ich die vergleichen es sollte auf ein Paar Stellen nach dem Komma gleich sein.
MFG
Maruu
-
Andere Variante: "bc"
Ist nach meiner Methode aber recht umständlich und geht sicher eleganter, nur bin ich jetzt selbst zu faul in die manpage zu gucken:
In Dein Shellskript muss ein
export BC_ENV_ARGS=bc_args, damit "bc" weiss, dass es seine Variablen in "bc_args" findet.
echo "bc_ausgleichszeit = $ausgleichszeit">bc_args
echo "bc_vergleichszeit = 0">> bc_args
Schreibt Deine Shell-Variablen nach "bc_args"
Dann legst Du eine Datei vergleich.bc an:
if (bc_ausgleichszeit > bc_vergleichszeit) {
print "Zu viel gesurft \n"
}
quit
Satt der Variable bc_vergleichszeit könntest Du (falls das noch aktuell ist) natürlich auch direkt 0 angeben.
Aus dem Shellskript aufgerufen wird das bc-Konstrukt mit
bc -q vergleich.bc
Flüchtig getestet, scheint zu funktionieren.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen