Version 2.51
This is a maintenance release.
- Changed: When an expansion error occurs, the shell now immediately stops expansion rather than trying to expand the remaining part of the word.
- Changed: When there are no positional parameters,
"$@""$@"
now expands to nothing rather than one empty field, as defined in POSIX. - Changed: Quote removal in arithmetic expansion has been modified to match the behavior defined in POSIX. It no longer allows things like
$(("2" + \5))
. - Changed: The quotation rules for the substitution word in a parameter expansion inside double-quotes have been changed to match with the behavior of other existing shells. For example,
"${x-\a'b'}"
now expands to\a'b'
rather thanab
. - Changed: When there is no command word in a simple command, redirections are now performed in a subshell after assignments are performed.
- Changed: The standard input of asynchronous commands in a non-job-control shell is now always implicitly redirected to /dev/null, regardless of whether the standard input has already been redirected.
- Changed: Quoted characters are now handled in (almost) the same way as Bash in the regular expression in the
[[ word =~ regex ]]
syntax. - Fixed: The "command" built-in with the -v or -V option was printing the pathnames of external commands with a redundant leading slash when the current working directory is "/" or "//".
- Fixed: Redirections on a subshell command are now evaluated in the current shell rather than in the subshell.
- Fixed: When an EXIT trap is executed in a subshell with a redirection, the redirection was incorrectly not being applied to the trap.
- Fixed: When job control is off, the "trap" built-in was failing to set a new trap for SIGINT and SIGQUIT in an asynchronous command.
- Fixed: When job control is off, SIGINT and SIGQUIT were not being ignored if a trap had been set for the signal the main shell process.
- Fixed: In pattern matching, when an unescaped backslash results from an expansion in the pattern, it is now treated as an escape character.
- Fixed: When there are no positional parameters, the nested expansion
"${{@}}"
now expands to nothing rather than one empty field. - Fixed: Unquoted parentheses and vertical bars now can be used in the regular expression in the
[[ word =~ regex ]]
syntax.