A bug has been filed against /usr/xpg4/bin/sh (and /bin/ksh) as well,
for the same issue:

6791841 */usr/xpg4/bin/sh* unset of a variable which is not set should return 0

        April
        
> Date: Fri, 09 Jan 2009 23:36:26 +0100
> From: Roland Mainz <roland.mainz at nrubsig.org>
> X-Accept-Language: en
> To: April Chin <April.Chin at eng.sun.com>, OpenSolaris Shell discussions 
<shell-discuss at opensolaris.org>, ksh93-integration-discuss 
<ksh93-integration-discuss at opensolaris.org>, David Korn <dgk at 
research.att.com>
> Subject: Re: CR 6791838 Created P3 shell/korn93 *ksh93* unset of a 
variablewhich  is not set should return 0
> X-Virus-Scanned: ClamAV 0.94.1/8848/Fri Jan  9 14:16:38 2009 on 
mail-in-11.arcor-online.net
> X-Virus-Status: Clean
> 
> bugmail-sender at Sun.COM wrote:
> > 
> > *Synopsis*: *ksh93* unset of a variable which is not set should return 0
> > 
> > 
> > *Change Request ID*: 6791838
> > 
> > *Synopsis*: *ksh93* unset of a variable which is not set should return 0
> > 
> >   Product: solaris
> >   Category: shell
> >   Subcategory: korn93
> >   Type: Defect
> >   Subtype: Functionality
> >   Status: 5-Cause Known
> >   Substatus:
> >   Priority: 3-Medium
> >   Introduced In Release:
> >   Introduced In Build:
> >   Responsible Engineer: <User 1-5Q-5151>
> >   Keywords:
> > 
> > === *Description* 
============================================================
> > In ksh93, the special builtin "unset" will exit 1 when its argument is a
> > variable which is not set, but it should exit 0, according to the POSIX 
standards.
> 
> Erm... I interpret the standard a bit different in this case:
> http://www.opengroup.org/onlinepubs/000095399/utilities/unset.html says:
> -- snip --
> EXIT STATUS
> 
>      0
>         All name operands were successfully unset.
>     >0
>         At least one name could not be unset.
> -- snip --
> 
> Both ksh88, ksh93 and /usr/xpg4/bin/sh in Solaris behave like this:
> -- snip --
> $ /usr/xpg4/bin/sh -c 'unset kjashdjkashd || print "unset returned
> non-zero exit code"'                                  
> unset returned non-zero exit code
> $ ksh -c 'unset kjashdjkashd || print "unset returned non-zero exit
> code"'                                               
> unset returned non-zero exit code
> $ ksh93 -c 'unset kjashdjkashd || print "unset returned non-zero exit
> code"'                                             
> unset returned non-zero exit code
> -- snip --
> 
> Don: Is there any clarification request which defined the behaviour of
> "unset" more precisely ?
> 
> ----
> 
> Bye,
> Roland
> 
> -- 
>   __ .  . __
>  (o.\ \/ /.o) roland.mainz at nrubsig.org
>   \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
>   /O /==\ O\  TEL +49 641 3992797
>  (;O/ \/ \O;)


Reply via email to