Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: trap ERR
On Tue, 21 Feb 2017 07:52:02 -0800
Ray Andrews <rayandrews@xxxxxxxxxxx> wrote:
> On 20/02/17 10:08 PM, Ray Andrews wrote:
> > I haven't played around with traps much, but trying this in a script:
> >
> > trap 'echo ERROR at $0 $LINENO; return' ERR
> >
> > cp file1/tmp
> > cp no_such_file/tmp
> > cp file2/tmp
> >
> > # trap '' ERR
> >
> > I want to return with the message at any error, and it does return,
> > but it seems that the trap remains in effect which puzzles me since
> > when a script quits, I expect things to be returned to stock, no? The
> > commented line kills the trap fine, but of course if I return at the
> > first error, it's never executed.
[Z]ERR and DEBUG are special. If you want to stop them you do so
explicitly. You can append '; trap "" ERR' to the trap, if you want.
> > Also, I'd expect to 'exit' a script, but it ends up killing the whole
> > terminal. I'm used to using 'return' but now that I stop to think
> > about it, that should be wrong, no?
>
> Pardon, that was a moronic question. I'm so used to sourcing scrips
> that I mostly forget that there is any such thing as executing them and
> I'm sourcing automatically even when I think I'm executing -- I type the
> little dot so fast I don't even notice it. I don't execute because I
> don't know how to have access to my functions inside an executed
> script. Can I? If so, all the above difficulties go away.
There's nothing to stop you using $fpath and autoload in a script.
pws
Messages sorted by:
Reverse Date,
Date,
Thread,
Author