Führende Nullen entfernen

26/05/2008 - 14:43 von Niklaus Kuehnis | Report spam
Hallo zusammen

Wenn in unten stehendem Skript die Variable f2 z.B. den Wert "08"
hat, bekomme ich die Fehlermeldung "value too great for base (error
token is '08')". Minimalbeispiel:

me@home$ echo $((08*13))
bash: 08: value too great for base (error token is "08")

Mit führender Null wird das offenbar als Oktalzahl gelesen. Welches
ist die gescheiteste Methode, die führende Null wegzubekommen?

Dank & Gruss,
Niklaus

-
#!/bin/bash
# in Alsaplayer zum ausgewàhlten Textstring der Form HH:MM:SS
# springen

hms=$(xclip -o) # primary selection -> hms
f1=$(echo $hms | cut -d':' -f1)
f2=$(echo $hms | cut -d':' -f2)
f3=$(echo $hms | cut -d':' -f3)
seconds=$(($f1*3600+$f2*60+$f3))
alsaplayer --seek $seconds
 

Lesen sie die antworten

#1 Paul Hink
26/05/2008 - 14:51 | Warnen spam
Niklaus Kuehnis wrote:

Wenn in unten stehendem Skript die Variable f2 z.B. den Wert "08"
hat, bekomme ich die Fehlermeldung "value too great for base (error
token is '08')". Minimalbeispiel:

$ echo $((08*13))
bash: 08: value too great for base (error token is "08")

Mit führender Null wird das offenbar als Oktalzahl gelesen. Welches
ist die gescheiteste Methode, die führende Null wegzubekommen?



Wenn es auch ein anderer Lösungsansatz sein darf: Ein "10#" vor einer
Zahl erzwingt deren Interpretation als Dezimalzahl:

| $ echo $((10#08*13))
| 104
| $

Ähnliche fragen