Subject: Re: [ast-users] typeset differences between ksh88 and ksh93
--------

> Under ksh88 (AIX 5.2) I can use typeset -xZ4 VAR or typeset -Zx4 VAR and
> get the same results, however under ksh93 I cannot. I am trying to help
> someone port shell scripts written for ksh88 under AIX to work in ksh93
> in SLES Linux. Is there a way to enable an older backward compatible
> behavior in ksh93 to make it accept typeset options in the way it did in
> ksh88?
> 
> [EMAIL PROTECTED]:/usr/bin $ uname -a
> AIX hostname 2 5 000198B4D000
> [EMAIL PROTECTED]:/usr/bin $ Version M-11/16/88f
> [EMAIL PROTECTED]:/usr/bin $ FOO="5"
> [EMAIL PROTECTED]:/usr/bin $ typeset -xZ4 FOO
> [EMAIL PROTECTED]:/usr/bin $ echo ${FOO}
> 0005
> [EMAIL PROTECTED]:/usr/bin $ BAR="3"
> [EMAIL PROTECTED]:/usr/bin $ typeset -Zx4 BAR
> [EMAIL PROTECTED]:/usr/bin $ echo ${BAR}
> 0003
> 
> [EMAIL PROTECTED]:/usr/bin $ ksh93
> [EMAIL PROTECTED]:/usr/bin $ LOL="6"
> [EMAIL PROTECTED]:/usr/bin $ typeset -xZ4 LOL
> [EMAIL PROTECTED]:/usr/bin $ echo ${LOL}
> 0006
> [EMAIL PROTECTED]:/usr/bin $ CATS="6"
> [EMAIL PROTECTED]:/usr/bin $ typeset -Zx4 CATS
> [EMAIL PROTECTED]:/usr/bin $ echo ${CATS}
> 
> � 04/
>       ��
> 
> virthost3:~ # uname -a
> Linux virthost3 2.6.16.60-0.21-xen #1 SMP Tue May 6 12:41:02 UTC 2008
> x86_64 x86_64 x86_64 GNU/Linux
> virthost3:~ # ksh
> virthost3:/root # echo ${.sh.version}
> Version M 93s+ 2008-01-31
> virthost3:/root # LOL="6"
> virthost3:/root # typeset -xZ4 LOL
> virthost3:/root # echo ${LOL}
> 0006
> virthost3:/root # CATS="6"
> virthost3:/root # typeset -Zx4 CATS
> Usage: typeset [-abflnprstuxAH] [-i[base]] [-E[n]] [-F[n]] [-L[n]]
> [-R[n]]
>                [-T tname] [-Z[n]] [name[=value]...]
>    Or: typeset [ options ] -f [name...]
> 
> 
> -  
> Jared H. Hudson
> Dedicated Support Engineer
> [EMAIL PROTECTED]
> 479-283-4677
> 


There is a list of compatibility issued when moving from ksh88
to ksh93, and this one is listed as follows:

11.     Some undocumented combinations of argument passing to ksh
        builtins no longer works since ksh-93 is getopts conforming
        with respect to its built-ins.  For example, typeset -8i
        previously would work as a synonym for typeset -i8.

The reason for the change was to be getopts standard as much as possible
and to avoid ambiguities.

No I could add a warning message that would be displayed with
ksh -n that would warn about problems such as this.  If you were to run
        ksh -n your_script
it would tell you what lines use invalid options to typeset.  Would
that be of help?

David Korn
[EMAIL PROTECTED]
_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to