ash: fix $! value when traps are set

Signed-off-by: Alexander Shishkin <virtuoso@slind.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Alexander Shishkin
2010-07-25 13:07:39 +02:00
committed by Denys Vlasenko
parent 7a2ba329b9
commit ccb9771861
6 changed files with 41 additions and 2 deletions

View File

@@ -0,0 +1 @@
Bug detected: 0

View File

@@ -0,0 +1,18 @@
bug() {
trap : exit
# Bug was causing sh to be run in subshell,
# as if this line is replaced with (sh -c ...; exit $?) &
# here:
sh -c 'echo REAL_CHILD=$$' &
echo PARENTS_IDEA_OF_CHILD=$!
wait # make sure bkgd shell completes
}
bug | {
while read varval; do
eval $varval
done
test x"$REAL_CHILD" != x"" \
&& test x"$REAL_CHILD" = x"$PARENTS_IDEA_OF_CHILD"
echo "Bug detected: $?"
}