对于base来说价值太大了(错误令牌是“08”)bash

时间:2014-02-13 19:14:15

标签: string bash decimal octal

我在论坛上看到问题是我创建八进制而不是十进制,但我找不到在哪里更改我的代码来解决这个问题。

This is part of my code:
dd=1234567890aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
ddate=$(exiv2 "${i}"|grep timestamp)
SPEC=$ddate
read X X YEAR MONTH DAY HOUR MINUTE SECOND <<<${SPEC//:/ }
d1=${YEAR:2}
d2=${dd:(MONTH-1):1}
d3=${dd:(DAY-1):1}
d4=${dd:(HOUR-1):1}
d5=${dd:(MINUTE-1):1}
d6=${dd:(SECOND-1):1}
d7=0

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

告诉bash你的变量是十进制的,而不是八进制的

d2=${dd:(10#$MONTH-1):1}
d3=${dd:(10#$DAY-1):1}
d4=${dd:(10#$HOUR-1):1}
d5=${dd:(10#$MINUTE-1):1}
d6=${dd:(10#$SECOND-1):1}