File: exec16.sub

package info (click to toggle)
bash 5.3-1
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 43,860 kB
  • sloc: ansic: 134,738; sh: 8,866; yacc: 5,966; makefile: 4,697; perl: 4,105; asm: 48; awk: 23; sed: 16
file content (127 lines) | stat: -rw-r--r-- 2,001 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# 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