]>
Commit | Line | Data |
---|---|---|
726f6388 JA |
1 | if : ; then |
2 | set -e | |
3 | N=95 | |
4 | while :; do | |
5 | # expr returns 1 if expression is null or 0 | |
6 | set +e | |
7 | N_MOD_100=`expr $N % 100` | |
8 | set -e | |
9 | echo $N_MOD_100 | |
10 | N=`expr $N + 1` | |
11 | if [ $N -eq 110 ]; then | |
12 | break | |
13 | fi | |
14 | done | |
15 | set +e | |
16 | fi | |
28ef6c31 JA |
17 | |
18 | ( | |
19 | set -e | |
20 | false | |
21 | echo bad | |
22 | ) | |
23 | echo $? | |
24 | ||
25 | x=$( | |
26 | set -e | |
27 | false | |
28 | echo bad | |
29 | ) | |
30 | echo $? $x | |
31 | ||
ccc6cda3 JA |
32 | # command subst should not inherit -e |
33 | set -e | |
34 | echo $(false; echo ok) | |
d166f048 JA |
35 | |
36 | if set +e | |
37 | then | |
38 | false | |
39 | fi | |
40 | echo hi | |
41 | ||
42 | set -e | |
43 | ||
44 | # a failing command in the compound list following a while, until, or | |
45 | # if should not cause the shell to exit | |
46 | ||
47 | while false; do | |
48 | echo hi | |
49 | done | |
50 | echo while succeeded | |
51 | ||
52 | x=1 | |
53 | until (( x == 4 )); do | |
54 | x=4 | |
55 | done | |
56 | echo until succeeded: $x | |
57 | ||
58 | if false; then | |
59 | echo oops | |
60 | fi | |
61 | echo if succeeded | |
62 | ||
63 | # failing commands that are part of an AND or OR list should not | |
64 | # cause the shell to exit | |
65 | false && echo AND list failed | |
66 | echo AND list succeeded | |
67 | ||
68 | false || echo OR list succeeded | |
69 | ||
70 | ! false | |
71 | echo ! succeeded | |
72 | ||
73 | # make sure eval preserves the state of the -e flag and `!' reserved word | |
74 | set -e | |
75 | if eval false; then | |
76 | echo oops | |
77 | fi | |
78 | echo eval succeeded | |
79 | ||
80 | ! eval false | |
81 | echo ! eval succeeded -- 1 | |
82 | ||
83 | ! eval '(exit 5)' | |
84 | echo ! eval succeeded -- 2 |