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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
|
# fnmatch-p.tst: test of pattern matching for any POSIX-compliant shell
posix="true"
test_oE 'quotations of a normal character'
case a in a ) echo 01; esac
case a in b ) echo 02; esac
case a in A ) echo 03; esac
case \a in a ) echo 11; esac
case \a in b ) echo 12; esac
case \a in A ) echo 13; esac
case a in \a ) echo 21; esac
case a in \b ) echo 22; esac
case a in \A ) echo 23; esac
case \a in \a ) echo 31; esac
case \a in \b ) echo 32; esac
case \a in \A ) echo 33; esac
case 'a' in a ) echo 41; esac
case 'a' in b ) echo 42; esac
case 'a' in A ) echo 43; esac
case a in 'a') echo 51; esac
case a in 'b') echo 52; esac
case a in 'A') echo 53; esac
case 'a' in 'a') echo 61; esac
case 'a' in 'b') echo 62; esac
case 'a' in 'A') echo 63; esac
case "a" in a ) echo 71; esac
case "a" in b ) echo 72; esac
case "a" in A ) echo 73; esac
case a in "a") echo 81; esac
case a in "b") echo 82; esac
case a in "A") echo 83; esac
case "a" in "a") echo 91; esac
case "a" in "b") echo 92; esac
case "a" in "A") echo 93; esac
__IN__
01
11
21
31
41
51
61
71
81
91
__OUT__
test_oE 'quotations of quotations'
sq=\' dq=\" bs=\\
case \' in \' ) echo 111; esac
case \' in "'" ) echo 112; esac
case \' in "$sq") echo 113; esac
case "'" in \' ) echo 121; esac
case "'" in "'" ) echo 122; esac
case "'" in "$sq") echo 123; esac
case $sq in \' ) echo 131; esac
case $sq in "'" ) echo 132; esac
case $sq in "$sq") echo 133; esac
case "$sq" in \' ) echo 141; esac
case "$sq" in "'" ) echo 142; esac
case "$sq" in "$sq") echo 143; esac
case \" in \" ) echo 211; esac
case \" in '"' ) echo 212; esac
case \" in "$dq") echo 213; esac
case '"' in \" ) echo 221; esac
case '"' in '"' ) echo 222; esac
case '"' in "$dq") echo 223; esac
case $dq in \" ) echo 231; esac
case $dq in '"' ) echo 232; esac
case $dq in "$dq") echo 233; esac
case "$dq" in \" ) echo 241; esac
case "$dq" in '"' ) echo 242; esac
case "$dq" in "$dq") echo 243; esac
case \\ in \\ ) echo 311; esac
case \\ in '\' ) echo 312; esac
case \\ in "\\" ) echo 313; esac
case \\ in "$bs") echo 314; esac
case '\' in \\ ) echo 321; esac
case '\' in '\' ) echo 322; esac
case '\' in "\\" ) echo 323; esac
case '\' in "$bs") echo 324; esac
case "\\" in \\ ) echo 331; esac
case "\\" in '\' ) echo 332; esac
case "\\" in "\\" ) echo 333; esac
case "\\" in "$bs") echo 334; esac
case $bs in \\ ) echo 341; esac
case $bs in '\' ) echo 342; esac
case $bs in "\\" ) echo 343; esac
case $bs in "$bs") echo 344; esac
case "$bs" in \\ ) echo 351; esac
case "$bs" in '\' ) echo 352; esac
case "$bs" in "\\" ) echo 353; esac
case "$bs" in "$bs") echo 354; esac
__IN__
111
112
113
121
122
123
131
132
133
141
142
143
211
212
213
221
222
223
231
232
233
241
242
243
311
312
313
314
321
322
323
324
331
332
333
334
341
342
343
344
351
352
353
354
__OUT__
test_oE 'escapes resulting from expansions'
bs=\\ a=*
# $bs* expands to \* which only matches literal *
case x in $bs*) echo not reached 11; esac
case * in $bs*) echo 12; esac
# $bs$a expands to \* which only matches literal *
case x in $bs$a) echo not reached 21; esac
case * in $bs$a) echo 22; esac
# $bs$bs expands to \\ which only matches literal \
case x in $bs$bs) echo not reached 31; esac
case \\ in $bs$bs) echo 32; esac
__IN__
12
22
32
__OUT__
test_oE 'blanks'
n=
case '' in '' ) echo 11; esac
case '' in "" ) echo 12; esac
case '' in $n ) echo 13; esac
case '' in "$n") echo 14; esac
case "" in '' ) echo 21; esac
case "" in "" ) echo 22; esac
case "" in $n ) echo 23; esac
case "" in "$n") echo 24; esac
case $n in '' ) echo 31; esac
case $n in "" ) echo 32; esac
case $n in $n ) echo 33; esac
case $n in "$n") echo 34; esac
case "$n" in '' ) echo 41; esac
case "$n" in "" ) echo 42; esac
case "$n" in $n ) echo 43; esac
case "$n" in "$n") echo 44; esac
case $n''"""$n" in "$n"""''$n) echo 99; esac
__IN__
11
12
13
14
21
22
23
24
31
32
33
34
41
42
43
44
99
__OUT__
test_oE '? and * and normal characters'
case a in a ) echo 01; esac
case aa in a ) echo 02; esac
case a in aa) echo 03; esac
case aa in aa) echo 04; esac
case a in ? ) echo 11; esac
case a in * ) echo 12; esac
case a in ?*) echo 13; esac
case a in *?) echo 14; esac
case a in ??) echo 15; esac
case a in **) echo 16; esac
case aa in ? ) echo 21; esac
case aa in * ) echo 22; esac
case aa in ?*) echo 23; esac
case aa in *?) echo 24; esac
case aa in ??) echo 25; esac
case aa in **) echo 26; esac
__IN__
01
04
11
12
13
14
16
22
23
24
25
26
__OUT__
test_oE '? and * and quotations'
case '' in ?) echo 01; esac
case '' in *) echo 02; esac
case \\ in ?) echo 11; esac
case \\ in *) echo 12; esac
case "'" in ?) echo 21; esac
case "'" in *) echo 22; esac
case '"' in ?) echo 31; esac
case '"' in *) echo 32; esac
__IN__
02
11
12
21
22
31
32
__OUT__
test_oE 'brackets'
case a in [[:lower:]]) echo lower ; esac
case a in [[:upper:]]) echo upper ; esac
case a in [[:alpha:]]) echo alpha ; esac
case a in [[:digit:]]) echo digit ; esac
case a in [[:alnum:]]) echo alnum ; esac
case a in [[:punct:]]) echo punct ; esac
case a in [[:graph:]]) echo graph ; esac
case a in [[:print:]]) echo print ; esac
case a in [[:cntrl:]]) echo cntrl ; esac
case a in [[:blank:]]) echo blank ; esac
case a in [[:space:]]) echo space ; esac
case a in [[:xdigit:]]) echo xdigit; esac
case a in [[.a.]] ) echo 2; esac
case 1 in [0-2] ) echo 3; esac
case 1 in [[.0.]-[.2.]]) echo 4; esac
case a in [!a] ) echo 5; esac
case 1 in [!0-2] ) echo 6; esac
case a in [[=a=]] ) echo 7; esac
__IN__
lower
alpha
alnum
graph
print
xdigit
2
3
4
7
__OUT__
test_oE 'brackets and quotations'
case \. in ["."]) echo 01; esac
case \[ in ["."]) echo 02; esac
case \" in ["."]) echo 03; esac
case \\ in ["."]) echo 04; esac
case \] in ["."]) echo 05; esac
case \. in [\".]) echo 11; esac
case \[ in [\".]) echo 12; esac
case \" in [\".]) echo 13; esac
case \\ in [\".]) echo 14; esac
case \] in [\".]) echo 15; esac
case \. in [\.] ) echo 21; esac
case \[ in [\.] ) echo 22; esac
case \" in [\.] ) echo 23; esac
case \\ in [\.] ) echo 24; esac
case \] in [\.] ) echo 25; esac
case \. in "[.]") echo 31; esac
case \[ in "[.]") echo 32; esac
case \" in "[.]") echo 33; esac
case \\ in "[.]") echo 34; esac
case \] in "[.]") echo 35; esac
case \. in [\]] ) echo 41; esac
case \[ in [\]] ) echo 42; esac
case \" in [\]] ) echo 43; esac
case \\ in [\]] ) echo 44; esac
case \] in [\]] ) echo 45; esac
case \. in ["]"]) echo 51; esac
case \[ in ["]"]) echo 52; esac
case \" in ["]"]) echo 53; esac
case \\ in ["]"]) echo 54; esac
case \] in ["]"]) echo 55; esac
__IN__
01
11
13
21
45
55
__OUT__
# vim: set ft=sh ts=8 sts=4 sw=4 et:
|