mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-09-02 22:11:54 +02:00
37831: typeset: Document exit status difference from parameter assignment statements
This commit is contained in:
parent
ca3bc0d95d
commit
3b69b121de
2 changed files with 22 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2016-01-30 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 37831: Doc/Zsh/builtins.yo: typeset: Document exit status
|
||||
difference from parameter assignment statements
|
||||
|
||||
2016-01-30 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
|
||||
|
||||
* 37838: Src/Builtins/rlimits.c, Src/Builtins/sched.c,
|
||||
|
|
|
@ -1826,6 +1826,23 @@ reserved word interface for tt(typeset) may cause problems with the
|
|||
output of `tt(typeset -p)', which assumes the reserved word interface is
|
||||
available in order to restore array and associative array values.
|
||||
|
||||
Unlike parameter assignment statements, tt(typeset)'s exit status on an
|
||||
assignment that involves a command substitution does not reflect the exit
|
||||
status of the command substitution. Therefore, to test for an error in
|
||||
a command substitution, separate the declaration of the parameter from its
|
||||
initialization:
|
||||
|
||||
example(# WRONG
|
||||
typeset var1=$(exit 1) || echo "Trouble with var1"
|
||||
|
||||
# RIGHT
|
||||
typeset var1 && var1=$(exit 1) || echo "Trouble with var1"
|
||||
)
|
||||
|
||||
To initialize a parameter var(param) to a command output and mark it readonly,
|
||||
use tt(typeset -r )var(param) or tt(readonly )var(param) after the parameter
|
||||
assignment statement.
|
||||
|
||||
If the shell option tt(TYPESET_SILENT) is not set, for each remaining
|
||||
var(name) that refers to a parameter that is already set, the name and
|
||||
value of the parameter are printed in the form of an assignment.
|
||||
|
|
Loading…
Reference in a new issue