I have a function that returns true/false.

during development, (and sometimes thereafter depending on the script, I
run with -eu, to make sure the script stops as soon as there is a
problem (well, to 'try' to make sure, many are caught.

But there are two instances that cause an error exit that seem pretty
unuseful and I don't remember them breaking this way before.

1)

((expr)), if expr evals to '0', it returns false=failure, the script
stops.

I regularly use ((expr) to do calculations -- now none of them appear
safe -- this never used to be a problem.


2)  a function returning a false value  -- Tried putting the ((expr)) in
an if:

if ((expr)); then return 0; else return 1;

As soon as it sees the return 1, it exits, -- as I returned 'false'
(error).


I know I used to be able to do calculations and turn expressions with -e
on, and not have to worry about the script existing just because I
return false to a bool function!

Are these more changes that went into recent versions or is there
something else going on or did something get seriously broken?







Reply via email to