diff options
-rw-r--r-- | shell/ash.c | 2 | ||||
-rw-r--r-- | shell/ash_test/ash-misc/errexit1.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/errexit1.tests | 5 |
3 files changed, 8 insertions, 0 deletions
diff --git a/shell/ash.c b/shell/ash.c index bffb4a245..a885514d3 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -8408,6 +8408,8 @@ evaltree(union node *n, int flags) | |||
8408 | evalfn = evalloop; | 8408 | evalfn = evalloop; |
8409 | goto calleval; | 8409 | goto calleval; |
8410 | case NSUBSHELL: | 8410 | case NSUBSHELL: |
8411 | evalfn = evalsubshell; | ||
8412 | goto checkexit; | ||
8411 | case NBACKGND: | 8413 | case NBACKGND: |
8412 | evalfn = evalsubshell; | 8414 | evalfn = evalsubshell; |
8413 | goto calleval; | 8415 | goto calleval; |
diff --git a/shell/ash_test/ash-misc/errexit1.right b/shell/ash_test/ash-misc/errexit1.right new file mode 100644 index 000000000..d86bac9de --- /dev/null +++ b/shell/ash_test/ash-misc/errexit1.right | |||
@@ -0,0 +1 @@ | |||
OK | |||
diff --git a/shell/ash_test/ash-misc/errexit1.tests b/shell/ash_test/ash-misc/errexit1.tests new file mode 100755 index 000000000..7b4a15634 --- /dev/null +++ b/shell/ash_test/ash-misc/errexit1.tests | |||
@@ -0,0 +1,5 @@ | |||
1 | set -e | ||
2 | (true) | ||
3 | echo OK | ||
4 | (false) | ||
5 | echo FAIL | ||