Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.unix.shell > #4886
| From | kj <no.email@please.post> |
|---|---|
| Newsgroups | comp.unix.shell |
| Subject | Re: [zsh] How to mimic errexit within subshell (or function)? |
| Date | 2012-05-03 18:20 +0000 |
| Organization | none |
| Message-ID | <jnui9j$b8b$1@reader1.panix.com> (permalink) |
| References | <jnpk36$jqs$1@reader1.panix.com> <slrnjq235r.qt6.vaeth@lounge.imp.fu-berlin.de> <jns0pa$apr$1@reader1.panix.com> <20120502192715.GG10446@chaz.gmail.com> |
In <20120502192715.GG10446@chaz.gmail.com> Stephane Chazelas <stephane.chazelas@gmail.com> writes: >2012-05-02 19:09:30 +0000, kj: >> >> First of all, thanks for all the replies! >> >> In <slrnjq235r.qt6.vaeth@lounge.imp.fu-berlin.de> Martin Vaeth >> <vaeth@mathematik.uni-wuerzburg.de> writes: >> >> >kj <no.email@please.post> wrote: >> >> >> >> despite the set -e (errexit), the subshell does >> >> not exit on error >> >> >Here it does (in script and also interactive): >> >> ># ( set -e; printf a; false; printf b ); echo $? >> >a1 >> >> Thanks. But now I'm **really** confused. I don't why the first >> subshell below (i.e. your version) terminates upon error but the >> second one (mine) doesn't: >> >> % ( set -e; printf a; false; printf b ); echo $? >> a1 >> % ( set -e; printf a; false; printf b ) || echo $? >> ab% >> >> Actually, I don't understand why mine doesn't work, period, since >> I can't find anything in the zsh docs saying that it shouldn't... >> Any pointers to the place in the zsh docs where this is explained >> would be much appreciated. (I hope that *some day* I'll learn to >> find my way around the zsh documentation, but I'm nowhere near that >> point yet.) >[...] >It's not specific to zsh. <helpful explanation snipped> >It's a bit confusing but that's how all the shells behave. Hmm... I wonder if this is why the zsh documentation does not mention this bit of general shell weirdness (AFAICT). Be that as it may, thanks for the clarification. In <20120502195328.GH10446@chaz.gmail.com> Stephane Chazelas <stephane.chazelas@gmail.com> writes: >2012-05-02 19:33:34 +0000, kj: >> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=520101 >> http://permalink.gmane.org/gmane.linux.debian.devel.bugs.general/545456 >> >> Is this what you have in mind? >[...] >No, that's about coding practice, maintainability and >reliability. >Relying on "set -e" to do your error handling is a bad idea in >anything more than the simplest of scripts that just run a >command after the other. >- commands can have non-zero exit statuses that don't mean an > error (see "test", "expr", "grep"...) >- subtleties like the one you discovered about where its effects > are cancelled >- interactions with subshells, pipes, background jobs >- some commands will output errors, some will no, "set -e" will > not explain why the script dies. >You just can't assume it works without having to worry. >And if you start to worry, it's a lot simpler to do the error >handling properly. That's food for thought, thanks. Maybe it's time to revisit my approach to error handling in shell scripts... ~k
Back to comp.unix.shell | Previous | Next — Previous in thread | Find similar
[zsh] How to mimic errexit within subshell (or function)? kj <no.email@please.post> - 2012-05-01 21:20 +0000
Re: [zsh] How to mimic errexit within subshell (or function)? Stephane Chazelas <stephane.chazelas@gmail.com> - 2012-05-02 07:34 +0100
Re: [zsh] How to mimic errexit within subshell (or function)? Geoff Clare <geoff@clare.See-My-Signature.invalid> - 2012-05-02 13:51 +0100
Re: [zsh] How to mimic errexit within subshell (or function)? Stephane Chazelas <stephane.chazelas@gmail.com> - 2012-05-02 14:29 +0100
Re: [zsh] How to mimic errexit within subshell (or function)? kj <no.email@please.post> - 2012-05-02 19:33 +0000
Re: [zsh] How to mimic errexit within subshell (or function)? Stephane Chazelas <stephane.chazelas@gmail.com> - 2012-05-02 20:53 +0100
Re: [zsh] How to mimic errexit within subshell (or function)? Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> - 2012-05-02 10:30 +0000
Re: [zsh] How to mimic errexit within subshell (or function)? kj <no.email@please.post> - 2012-05-02 19:09 +0000
Re: [zsh] How to mimic errexit within subshell (or function)? kj <no.email@please.post> - 2012-05-02 19:12 +0000
Re: [zsh] How to mimic errexit within subshell (or function)? Stephane Chazelas <stephane.chazelas@gmail.com> - 2012-05-02 20:27 +0100
Re: [zsh] How to mimic errexit within subshell (or function)? kj <no.email@please.post> - 2012-05-03 18:20 +0000
csiph-web