On 5 June 2013 19:46, Nathan Weeks <[email protected]> wrote:
> POSIX.1-2008 TC1 changed the behavior of "set -u" to apply to all parameters
> (other than "@" and "*") instead of just variables.
>
> POSIX.1-2008:
>
>     -u
>         The shell shall write a message to standard error when it tries to
>         expand a variable that is not set and immediately exit. An interactive
>         shell shall not exit.
>
> POSIX.1-2008 TC1:
>
>     -u
>         When the shell tries to expand an unset parameter other than the '@'
>         and '*' special parameters, it shall write a message to standard error
>         and shall not execute the command containing the expansion, but for
>         the purposes of setting the '?' special parameter and the exit status
>         of the shell the command shall be treated as having been executed and
>         returned an exit status of between 1 and 125 inclusive. A
>         non-interactive shell shall immediately exit. An interactive shell
>         shall not exit.
>
> ksh93 2012-02-29 does not treat, e.g., the expansion of unset positional
> parameters as an error, nor does it issue an error when an unset positional
> parameter is used in a parameter expansion of the form "${#parameter}",
> "${parameter%[word]}", "${parameter%%[word]}", "${parameter#[word]}", or
> "${parameter##[word]}", for which POSIX.1-2008 TC1 states:
>
>    If parameter is unset and set -u is in effect, the expansion shall fail.

"exit status of between 1 and 125 inclusive" - doesn't ksh93 return
exit status between 0 and 255? Why are 126 and 127 omitted?

Lionel
_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users

Reply via email to