| 
									
										
										
										
											1996-08-26 18:22:31 +00:00
										 |  |  | 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 | 
					
						
							| 
									
										
										
										
											2001-04-06 19:14:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | ( | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | false | 
					
						
							|  |  |  | echo bad | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | echo $? | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | x=$( | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | false | 
					
						
							|  |  |  | echo bad | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | echo $? $x | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-12-23 17:02:34 +00:00
										 |  |  | # command subst should not inherit -e | 
					
						
							|  |  |  | set -e | 
					
						
							|  |  |  | echo $(false; echo ok) | 
					
						
							| 
									
										
										
										
											1997-06-05 14:59:13 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2009-01-12 13:36:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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 | 
					
						
							| 
									
										
										
										
											2009-02-19 22:21:29 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | set +e | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ${THIS_SH} ./set-e1.sub | 
					
						
							|  |  |  | ${THIS_SH} ./set-e2.sub |