Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
trap question
- X-seq: zsh-users 28427
- From: Ray Andrews <rayandrews@xxxxxxxxxxx>
- To: Zsh Users <zsh-users@xxxxxxx>
- Subject: trap question
- Date: Fri, 25 Nov 2022 10:35:19 -0800
- Archived-at: <https://zsh.org/users/28427>
- List-id: <zsh-users.zsh.org>
This script:
typeset -g var=0
test1 ()
{
trap " [[ $var == '0' ]] && echo trap: var is: $var" EXIT
var=0
return
}
test2 ()
{
var=1
test1
echo "test2: var is: $var"
}
run:
$ . test1; test1; test2
trap: var is: 0
test2: 0
... I'm puzzled, even tho test2 does reset the variable to '1', test1
sets it back to '0' just as the final 'echo' reports so I'm expecting
the trap to spring. Foolishly since that's C thinking whereas in
interpreted code the value of the variable *at the time of the
definition of the trap* is what is in effect and in this case that's
'1'. So what I'm really wanting is some way to set the trap in such a
way that it responds to the value of 'var' *at the time of the springing
of the trap*, namely at 'return'. Can it be done?
Messages sorted by:
Reverse Date,
Date,
Thread,
Author