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
