Archiv verlassen und diese Seite im Standarddesign anzeigen : kleines bash problem
eurofreddy
26.05.04, 17:51
Hallo,
ich möchte in einem bash script den wert einer variablen in eine neue variable auf addieren. ich bekomme aber immer fehlermeldungen. so hab ich es gemacht:
(( var1 += $var2 ))
das scheint aber wohl falsch zu sein ! :-)
Hat jemand ne Idee ?
Gruß Euro.
der code grad eben sorgt dafür, dass var1 um var2 erhöht wird
ist das das was du willst?
eurofreddy
26.05.04, 18:43
ja eigentlich ist das was ich will !
er steigt mir nur immer bei dieser zeile aus dem script aus.
vielleicht liegt der fehler aber auch in der zeile danach. stimmt die folgende zeile auch ? :-) ich will die var1 durch 10 dividieren.
tmp=$(($var1/10))
irgendwas an dieser oder an der zeile die ich zuvor gepostet hab kann net stimmen !
Gruß Axel.
diese zeile ist falsch
das $( wird als commando interpretiert (wie ``)
lass das mal weg
eurofreddy
26.05.04, 19:09
ok ein fehler weniger.
er mekkert aber immer noch die (( var1 += $var2 )) zeile an.
die fehlermeldung die er auspuckt lautet:
((: var1 += : syntax error: operand expected (error token is " ")
ich kann damit nix anfangen ! er summiert aber defenitiv nicht var2 zu var1 hinzu !
Gruß Axel.
hmm fällt mir grad nix ein (hab noch nich viel in dem bereich gemacht, nur reingeschnuppert)
frag mal bei mrunix an (schwesterforum)
Hat jemand ne Idee ?
var1=$((var1+var2))
-j
Versuch doch mal diese Art:
var=`expr \( $var1 + $var2 \) / 10`
eurofreddy
26.05.04, 19:28
sorry hab en fehler gemacht ! das addieren der beiden Variablen funzt doch. das dividieren geht ebenso. das problem ist das z.B. 24+24+24+24+23=119/5=23,8 ist ! wenn ich mir nach der division allerdings mit echo $var1 ausgeben lasse steht da net 23,8 sondern 23 drin ! das ist mein problem wie ich festgestellt habe. ich dachte er summiert garnicht erst.
Sorry war mein fehler habs falsch beschrieben !
Aber warum gibt er mir keine 23,8 in der variablen sondern nur 23 aus ?
muss ich die irgendwie deklarieren so aller int bzw. float ?
Gruß Axel.
bash kann nur integer-arithmetik. komplexere dinge erledigt 'bc'
-j
Der Gestreifte
26.05.04, 19:58
muss ich die irgendwie deklarieren so aller int bzw. float ? float und andere kennt die bash nicht, Du musst Dir mit "bc" behelfen. Etwa in der Art:
a=2.34
b=6
VAR=$(echo "$a+$b" |bc)
Das ist, was ich aus dem Kopf weiss, die man zu "bc" gibt aber massig her.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.