On 3/4/10 2:36 AM, Ettelbrueck, Heiko wrote:
> Important detail: The local variable is declared and defined in
> the same step with "local VARNAME=$(do something)".
>
> Problem: The $? variable is always 0 after that statement. (If,
> on the other hand, I separate the declaration and the
> definition of the variable as shown in the example below, the
> $? variable is really set to the exit status of the external
> tool.)
The exit status is the status of the command you run: local. In the
absence of a command, when there are only assignment statements, the
exit status can be the exit status of a command substitution:
"If there is no command name, but the command contained a command
substitution, the command shall complete with the exit status of the last
command substitution performed. Otherwise, the command shall complete with
a zero exit status."
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/