File: extglob7.sub

package info (click to toggle)
bash 5.2.37-2
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 41,300 kB
  • sloc: ansic: 117,576; sh: 8,449; yacc: 5,448; makefile: 4,624; perl: 4,227; asm: 48; awk: 23; sed: 16
file content (97 lines) | stat: -rw-r--r-- 1,225 bytes parent folder | download | duplicates (3)
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
: ${TMPDIR:=/tmp}

TESTDIR=$TMPDIR/glob-test-$$
mkdir $TESTDIR || {
	echo "$TESTDIR: cannot create" >&2
	exit 1
}
cd $TESTDIR || {
	echo "$TESTDIR: cannot cd" >&2
	exit 1
}

LC_CTYPE=C LC_COLLATE=C
shopt -s extglob dotglob
shopt -u globskipdots		# XXX - backwards compatibility
touch .foo bar .a

echo dotglob: .a .foo bar

echo '@(.foo)'
echo @(.foo)
echo '!(.foo)'
echo !(.foo)

echo '@(.foo|*)'
echo @(.foo|*)
echo '!(.foo|*)'
echo !(.foo|*)

echo '@(*)'
echo @(*)
echo '!(*)'
echo !(*)

echo '.*'
echo .*
echo '@(.*)'
echo @(.*)
echo '!(.*)'
echo !(.*)

shopt -u dotglob

echo no dotglob: .a .foo bar

echo '@(.foo)'
echo @(.foo)
echo '!(.foo)'
echo !(.foo)

echo '@(.foo|*)'
echo @(.foo|*)
echo '!(.foo|*)'
echo !(.foo|*)

echo '!(bar).foo'
echo !(bar).foo
echo '*(bar).foo'
echo *(bar).foo
echo '?(bar).foo'
echo ?(bar).foo

echo '.?'
echo .?
echo '@(.?)'
echo @(.?)
echo '!(.?)'
echo !(.?)

shopt -s dotglob
echo dotglob: .a .foo bar

echo '@(?|.?)'
echo @(?|.?)
echo '@(?|.*)'
echo @(?|.*)
echo '? .*'
echo ? .*
echo '*'
echo *

shopt -u dotglob
echo no dotglob: .a .foo bar

echo '@(?|.?)'
echo @(?|.?)
echo '@(?|.*)'
echo @(?|.*)
echo '? .*'
echo ? .*
echo '*'
echo *

rm -f .a bar .foo

cd $OLDPWD
rm -rf $TESTDIR