mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-08-06 18:22:25 +02:00
commit bash-20080507 snapshot
This commit is contained in:
@@ -82,3 +82,24 @@ echo ! eval succeeded -- 1
|
||||
|
||||
! eval '(exit 5)'
|
||||
echo ! eval succeeded -- 2
|
||||
|
||||
set -e
|
||||
until builtin false; do echo a; break; done
|
||||
echo $?
|
||||
|
||||
until eval false; do echo b; break; done
|
||||
echo $?
|
||||
|
||||
: ${TMPDIR:=/tmp}
|
||||
FN=$TMPDIR/set-e-$$
|
||||
cat > $FN << EOF
|
||||
false
|
||||
echo after 1
|
||||
false
|
||||
EOF
|
||||
|
||||
set -e
|
||||
until . $FN; do echo a; break; done
|
||||
echo $?
|
||||
|
||||
rm -f $FN
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
if : ; then
|
||||
set -e
|
||||
N=95
|
||||
while :; do
|
||||
# expr returns 1 if expression is null or 0
|
||||
set +e
|
||||
N_MOD_100=`expr $N % 100`
|
||||
set -e
|
||||
echo $N_MOD_100
|
||||
N=`expr $N + 1`
|
||||
if [ $N -eq 110 ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
set +e
|
||||
fi
|
||||
|
||||
(
|
||||
set -e
|
||||
false
|
||||
echo bad
|
||||
)
|
||||
echo $?
|
||||
|
||||
x=$(
|
||||
set -e
|
||||
false
|
||||
echo bad
|
||||
)
|
||||
echo $? $x
|
||||
|
||||
# command subst should not inherit -e
|
||||
set -e
|
||||
echo $(false; echo ok)
|
||||
|
||||
if set +e
|
||||
then
|
||||
false
|
||||
fi
|
||||
echo hi
|
||||
|
||||
set -e
|
||||
|
||||
# a failing command in the compound list following a while, until, or
|
||||
# if should not cause the shell to exit
|
||||
|
||||
while false; do
|
||||
echo hi
|
||||
done
|
||||
echo while succeeded
|
||||
|
||||
x=1
|
||||
until (( x == 4 )); do
|
||||
x=4
|
||||
done
|
||||
echo until succeeded: $x
|
||||
|
||||
if false; then
|
||||
echo oops
|
||||
fi
|
||||
echo if succeeded
|
||||
|
||||
# failing commands that are part of an AND or OR list should not
|
||||
# cause the shell to exit
|
||||
false && echo AND list failed
|
||||
echo AND list succeeded
|
||||
|
||||
false || echo OR list succeeded
|
||||
|
||||
! false
|
||||
echo ! succeeded
|
||||
|
||||
# make sure eval preserves the state of the -e flag and `!' reserved word
|
||||
set -e
|
||||
if eval false; then
|
||||
echo oops
|
||||
fi
|
||||
echo eval succeeded
|
||||
|
||||
! eval false
|
||||
echo ! eval succeeded -- 1
|
||||
|
||||
! eval '(exit 5)'
|
||||
echo ! eval succeeded -- 2
|
||||
@@ -26,3 +26,10 @@ OR list succeeded
|
||||
eval succeeded
|
||||
! eval succeeded -- 1
|
||||
! eval succeeded -- 2
|
||||
a
|
||||
0
|
||||
b
|
||||
0
|
||||
after 1
|
||||
a
|
||||
0
|
||||
|
||||
Reference in New Issue
Block a user