In this particular case, if you have a script which says something like:
foo
sleep 0.8
bar
sleep 0.9
baz
And you bring it to a non-BSD system, it will not sleep _at all_ since
the other system sees "sleep 0", and that could be bad depending on
what bar and baz do.
It should of course do something like:
sleep: invalid time `0.8' (not a nonnegative decimal integer as specified
by POSIX.2 4.57.4)
sleep: invalid time `0.9' ...
BSD's sleep has the usual sloppy numeric arg checking using atoi(), so it
won't do anything like this.
This is exactly the kind of interoperability
problem that POSIX was intended to try and solve. Let's not fight it.
I agree.
Bruce