mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-21 21:07:57 +02:00
128 lines
2.0 KiB
Plaintext
128 lines
2.0 KiB
Plaintext
# test ignoring effects of set -e on commands whose return status is being
|
|
# inverted
|
|
|
|
echo test invert
|
|
|
|
! ( set -e; false; echo reached subshell; )
|
|
set +e
|
|
|
|
! { set -e; false; echo reached group; }
|
|
set +e
|
|
|
|
! { set -e ; false ; echo reached async group; } &
|
|
wait
|
|
set +e
|
|
|
|
set -e
|
|
exec 3>&2
|
|
exec 2>/dev/null
|
|
! time { set -e ; false ; echo reached timed group; }
|
|
exec 2>&3
|
|
set +e
|
|
|
|
set -e
|
|
! false
|
|
echo reached simple
|
|
set +e
|
|
|
|
! if set -e; false ; echo reached if test; true; then
|
|
set -e
|
|
false
|
|
echo reached if body
|
|
fi
|
|
set +e
|
|
|
|
! while set -e ; false; echo reached while test; true; do
|
|
set -e
|
|
false
|
|
echo reached while body
|
|
break
|
|
done
|
|
set +e
|
|
! until set -e ; false; echo reached until test; false; do
|
|
set -e
|
|
false
|
|
echo reached until body
|
|
break
|
|
done
|
|
set +e
|
|
|
|
func()
|
|
{
|
|
set -e; false; echo reached func;
|
|
}
|
|
! func
|
|
set +e
|
|
|
|
! for f in 1 2 3; do
|
|
set -e
|
|
false
|
|
echo reached for
|
|
break
|
|
done
|
|
set +e
|
|
|
|
! for (( f=0; f < 3; f++ )); do
|
|
set -e
|
|
false
|
|
echo reached arith for
|
|
break
|
|
done
|
|
set +e
|
|
|
|
! select f in a b c
|
|
do
|
|
set -e
|
|
false
|
|
echo reached select
|
|
break
|
|
done <<<"a"
|
|
set +e
|
|
|
|
! case 1 in
|
|
1) set -e
|
|
false
|
|
echo reached case ;;
|
|
*) echo bad case match;;
|
|
esac
|
|
set +e
|
|
|
|
set -e
|
|
! (( 0 ))
|
|
echo reached arith
|
|
set +e
|
|
|
|
set -e
|
|
! [[ -n '' ]]
|
|
echo reached cond
|
|
set +e
|
|
|
|
! coproc C { set -e; false; echo reached coproc body; sleep 0.5; exit 0; }
|
|
read -u ${C[0]}
|
|
echo $REPLY
|
|
set +e
|
|
|
|
! echo pipeline | { set -e ; false; echo reached pipeline element invert; } | cat -
|
|
echo pipeline | { set -e ; false; echo reached pipeline element non-invert; } | cat -
|
|
set +e
|
|
|
|
! { true && { set -e ; false; echo reached AND-AND body; }; }
|
|
set +e
|
|
! { false || { set -e ; false; echo reached OR-OR body; }; }
|
|
set +e
|
|
|
|
true && ! { set -e ; false ; echo reached AND-AND group; }
|
|
set +e
|
|
false || ! { set -e ; false ; echo reached OR-OR group; }
|
|
set +e
|
|
|
|
# precedence here
|
|
|
|
! false && { set -e ; false ; echo reached inverted AND-AND group; }
|
|
set +e
|
|
! true || { set -e ; false ; echo reached inverted OR-OR group; }
|
|
set +e
|
|
|
|
# NOTREACHED
|
|
echo done
|