> Sorry, but I don't understand at all... So please bare with me and > make me understand. > > So I've interpreted `set -e` as a way to tell bash to treat any > process exiting with non-zero (and not succeeded by a || ), as an > error and end the current shell / sub-shell.
Close. There are a few conditions under which set -e has no effect. The && and || operators are a two places, but there are more. > So my question is how can I solve this problem? (And obtain the > needed behaviour.) (I see `()` and `{}` as blocks in normal > programming languages (of course with some particularities), and > non-zero exit codes as exceptions. And this is very helpful to write > robust bash scripts.) Don't rely on set -e if its behavior is not what you want. Check exit statuses yourself and stop execution when appropriate. You could use set -e and check exit statuses in the exception cases to reduce the amount of extra work. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/