>> Description: >> The errexit option does not work, if an error occures in a declare >> statement. > > There is no error, because `declare' is defined to return success if the > variable assignment is performed without an error.
As far as I know about interpreters the arguments of an assignment get first evaluated before the assignment is performed. The expression: declare a='x'$(false) means: concatenate the string 'x', which evaluates to itself, and the output of a sub shell, which performs the false command, and assign the concatenated value to the variable a. This means that the sub shell fails *before* 'declare' starts. So I think it should not matter what declare returns, because the script should have been terminated already. Sascha