Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15470 > unrolled thread

Bug? `set -e` inside functions inside `$(...)`

Started byJohn W <jwdevel@gmail.com>
First post2019-10-03 17:27 -0700
Last post2019-10-03 17:27 -0700
Articles 1 — 1 participant

Back to article view | Back to gnu.bash.bug

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Bug? `set -e` inside functions inside `$(...)` John W <jwdevel@gmail.com> - 2019-10-03 17:27 -0700

#15470 — Bug? `set -e` inside functions inside `$(...)`

FromJohn W <jwdevel@gmail.com>
Date2019-10-03 17:27 -0700
SubjectBug? `set -e` inside functions inside `$(...)`
Message-ID<mailman.933.1570163404.2651.bug-bash@gnu.org>
I'm seeing some strange behavior w/regard to `set -e` when invoking a
shell function through a `$(...)` construct.

I can't tell if it's a bug or not; the manpage doesn't really mention
$() specially with regard to `set -e`, that I have found.

I made a SO post with a bunch of details here:
https://stackoverflow.com/questions/58228383/bash-set-e-reset-inside-functions-when-run-via

But here's my small repro program:

    #!/usr/bin/env bash

    echo "Initial:    $-"
    set -eu
    echo "After set:  $-"

    function foo() {
        echo "Inside foo: $-"
    }
    foo

    function bar() {
        false    # I'd expect this to immediately fail
        echo "Inside bar: $-"
    }
    # When a $(...) construct is involved, 'bar' runs to completion!
    x=$(bar)
    echo "We should never get here ... but we do."
    echo "$x"

For me, this ouputs:

    Initial:    hB
    After set:  ehuB
    Inside foo: ehuB
    We should never get here ... but we do.
    Inside bar: huB

and it's really the last two lines that confuse me. Why was 'set -e'
disabled inside of "bar"?

Is this documented behavior, and I missed it?
Or a bug?
Or makes sense under some interpretation of things that I'm not grasping?

Thanks for any advice
-John

[toc] | [standalone]


Back to top | Article view | gnu.bash.bug


csiph-web