ubuntuusers.de

Rechnen in der bash - ist das ein bug?

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

X-DoSt-X

Anmeldungsdatum:
11. März 2010

Beiträge: 306

Hallo an alle,

hatte gerade einen komischen Fehler:

$ x=0105
$ echo $x
0105
$ echo $((x+1))
70

Ohne die führende Null stimmt es.

Ist das 'n bug oder mache ich was falsch?

–-

BASH_VERSINFO=([0]="4" [1]="2" [2]="25" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Nein, das ist ganz korrekt als Oktalzahl gerechnet.

Constants with a leading 0 are interpreted as octal numbers. ...

LG,

track

X-DoSt-X

(Themenstarter)

Anmeldungsdatum:
11. März 2010

Beiträge: 306

Oh, hab' ich zwar schon irgend wann mal gelesen, aber nicht mehr dran gedacht. Danke jedenfalls.

Grüße Dost

Mooi

Anmeldungsdatum:
15. August 2014

Beiträge: 187

Zahlenbasis aufzwingen:

~> x=0105
~> echo $((10#$x+1))
106
~> 

Funktioniert bis Zahlenbasis 64.

X-DoSt-X

(Themenstarter)

Anmeldungsdatum:
11. März 2010

Beiträge: 306

Danke Mooi. Das ist viel eleganter, als meine jetzige Lösung. Werd' es gleich nochmal ändern. 👍

Grüße Dost

Antworten |