ash: exit after subshell error when errexit option is set
When "set -e" option is on, shell must exit when any command fails, including compound commands of the form (compound-list) executed in a subshell. Bash and dash shells have this behaviour. Also add a corresponding testcase. Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b157eb13cb
commit
204c7fb229
@ -8408,6 +8408,8 @@ evaltree(union node *n, int flags)
|
||||
evalfn = evalloop;
|
||||
goto calleval;
|
||||
case NSUBSHELL:
|
||||
evalfn = evalsubshell;
|
||||
goto checkexit;
|
||||
case NBACKGND:
|
||||
evalfn = evalsubshell;
|
||||
goto calleval;
|
||||
|
1
shell/ash_test/ash-misc/errexit1.right
Normal file
1
shell/ash_test/ash-misc/errexit1.right
Normal file
@ -0,0 +1 @@
|
||||
OK
|
5
shell/ash_test/ash-misc/errexit1.tests
Executable file
5
shell/ash_test/ash-misc/errexit1.tests
Executable file
@ -0,0 +1,5 @@
|
||||
set -e
|
||||
(true)
|
||||
echo OK
|
||||
(false)
|
||||
echo FAIL
|
Loading…
Reference in New Issue
Block a user