sh: "local" assignment from command loses exit status
Eric van Gyzen
eric at vangyzen.net
Thu Nov 6 17:32:05 UTC 2014
On 11/06/2014 12:30, Fabian Keil wrote:
> Eric van Gyzen <eric at vangyzen.net> wrote:
>
>> In sh, if I use a single statement to declare a local variable and
>> assign the output of a command to it, the exit status of that command is
>> lost. For example:
>>
>> should_return_false() {
>> local var1=`false`
>> }
>>
>> The function should return non-zero, but it returns zero.
> The function should return the return code of the last command.
> In your example, the last command is "local".
Fair enough. What about errexit? The shell ran a command whose exit
status was not tested, that status was failure, yet the shell did not exit.
Eric
More information about the freebsd-current
mailing list