1 #!/usr/bin/env bash
2 #
3 # Tests nocasematch matching
4
5 #### [[ equality matching
6 shopt -s nocasematch
7 [[ a == A ]]; echo $?
8 [[ A == a ]]; echo $?
9 [[ A == [a] ]]; echo $?
10 [[ a == [A] ]]; echo $?
11 ## STDOUT:
12 0
13 0
14 0
15 0
16 ## END
17
18 #### [[ regex matching
19 shopt -s nocasematch
20 [[ a =~ A ]]; echo $?
21 [[ A =~ a ]]; echo $?
22 [[ a =~ [A] ]]; echo $?
23 [[ A =~ [a] ]]; echo $?
24 ## STDOUT:
25 0
26 0
27 0
28 0
29 ## END
30
31 #### [ matching
32 shopt -s nocasematch
33 [ a = A ]; echo $?
34 [ A = a ]; echo $?
35 ## STDOUT:
36 1
37 1
38 ## END
39
40 #### case matching
41 shopt -s nocasematch
42 case a in A) echo 0 ;; *) echo 1 ;; esac
43 case A in a) echo 0 ;; *) echo 1 ;; esac
44 case a in [A]) echo 0 ;; *) echo 1 ;; esac
45 case A in [a]) echo 0 ;; *) echo 1 ;; esac
46 ## STDOUT:
47 0
48 0
49 0
50 0
51 ## END
52
53 #### file matching
54 shopt -s nocasematch
55 touch a B
56 echo [A] [b]
57 ## STDOUT:
58 [A] [b]
59 ## END
60
61 #### parameter expansion matching
62 shopt -s nocasematch
63 foo=a
64 bar=A
65 echo "${foo#A}" "${foo#[A]}"
66 echo "${bar#a}" "${bar#[a]}"
67 ## STDOUT:
68 a a
69 A A
70 ## END