Here is a trivial work-around:

# Trims leading zeros.
t=0100
let i=${t##+(0)}
echo $i
# The End

Cheers
-Jon



On Mon, Sep 12, 2011 at 8:45 PM, Jared Hudson <[email protected]> wrote:

> Is it possible to disable the ANSI-C programming language integer
> constant conventions of the 'let' sub-command that were added in ksh93m+
> so it behaves more like ksh88 without recompiling?
>
> For example in ksh88 (AIX 5.3)
> $ let t=0100
> $ echo $t
> 100
>
> However under ksh93t+ (SLES 11 SP1)
> $ let t=0100
> $ echo $t
> 64
>
> We have a customer with 1000s of ksh scripts which they've been porting
> from AIX's ksh88 to SUSE Linux Enterprise Server 11's ksh93t+.
> Unfortunately they've just now discovered that many of their scripts
> break when numbers being evaluated by 'let' have a leading 0 in them
> because they're evaluated as an octal number. They're looking for a
> method like the _AST_FEATURES environment variable or 'set -o' that
> would change the behavior of ksh to evaluate all numbers as decimal.
> Does anything like this exist?
>
> Also does anyone know of some resources that list all the feature
> changes made to ksh93 that make it behave differently than ksh88?
>
> Thanks,
> Jared H. Hudson
>
>
> _______________________________________________
> ast-users mailing list
> [email protected]
> https://mailman.research.att.com/mailman/listinfo/ast-users
>



-- 

-Jon
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to