/bin/sh arithmetic doesn't seem to like leading 0 now

David Wolfskill david at catwhisker.org
Fri Sep 21 17:09:03 UTC 2012


I have a construct in a shell script that I had been using under
stable/8 (most recently, @r240259), but which throws an error under
stable/9 (at least as early as @r238602):

$ echo $(( ( $( date +%m ) - 1 ) / 3 + 1 ))
3
$ uname -r
8.3-PRERELEASE

$ echo $(( ( $( date +%m ) - 1 ) / 3 + 1 ))
arithmetic expression: expecting ')': " ( 09 - 1 ) / 3 + 1 "
$ uname -r
9.1-PRERELEASE

Trying bits & pieces of the above, I narrowed the issue down to:

$ echo $(( 09 + 0 ))
arithmetic expression: expecting EOF: " 09 + 0 "

while

$ echo $(( 9 + 0 ))
9
$ 

is not a problem.

Is this intentional?

(I can work around it -- e.g., by using sed to strip leading 0 from the
month number (since strftime() doesn't appear to have a format that
provides the value in a form that lacks the leading zero for values <
10).  But I'd rather not do that if I don't need to.)

Thanks!

Peace,
david
-- 
David H. Wolfskill				david at catwhisker.org
Depriving a girl or boy of an opportunity for education is evil.

See http://www.catwhisker.org/~david/publickey.gpg for my public key.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20120921/1b5e53e5/attachment.pgp


More information about the freebsd-stable mailing list