On 12 Feb 2011, at 11:57, Ralf Goertz wrote:
> 
> Hi,
> 
> I am wondering what the reasoning might be for this seeming
> inconsistence.
> 
>> i=08
>> if [ $i -lt 9 ] ; then echo ok; fi
> ok
>> if [ $((i)) -lt 9 ] ; then echo ok; fi
> bash: 08: value too great for base (error token is "08")
> 
> Why is 08 not tried to be interpreted as octal when *numerically* compared
> using test?
> 
> 

I stand by my general recommendation of always using (( when performing 
arithmetic tests, [[ when testing strings and files, and never [, unless your 
shebang is not actually bash.  It will save you from a great many pitfalls and 
inconsistencies.


Reply via email to