blob: 0017f4cd6bf7d7e7805aa8fa36dd5e5f904c1a22 [file] [log] [blame]
Jari Aalto31859422009-01-12 13:36:28 +00001# test cases for array quoting and escaping fixed post bash-3.2-release
2
3oIFS="$IFS"
4
5a=(a b c)
6echo ${a[@]}
7
8a2=("${a[@]/#/"-iname '"}")
9recho "${a2[@]}"
10
11echo "${dbg-"'hey'"}"
12echo "${dbg-"hey"}"
13echo "${dbg-'"'hey}"
14echo "${dbg-'"hey'}"
15
16unset a a2
17
18IFS=
19a2=(${a[@]/#/"-iname '"})
20recho "${a2[@]}"
21
22IFS="$oIFS"
23unset a a2
24
25a=('a b' 'c d' 'e f')
26
27recho ${a[@]:1:2}
28recho "${a[@]:1:2}"
29
30IFS=
31recho ${a[@]:1:2}
32recho "${a[@]:1:2}"
33
34IFS="$oIFS"
35unset a a2
36
37a=(abc def)
38
39# Prevent word splitting
40#IFS=
41
42a2=("${a[@]/#/"-iname '"}")
43recho "${a2[@]}"
44
Chet Rameyac50fba2014-02-26 09:36:43 -050045eval a2=("${a[@]/#/\"-iname \'\"}")
46recho "${a2[@]}"
47
Jari Aalto31859422009-01-12 13:36:28 +000048eval a2=("${a[@]/#/"-iname '"}")
49recho "${a2[@]}"
50
51a2=("${a[@]/#/-iname \'}")
52recho "${a2[@]}"
53
54eval a2=("${a[@]/#/-iname \'}")
55recho "${a2[@]}"
56
57set -- abc def
58
59a2=("${@/#/"-iname '"}")
60recho "${a2[@]}"
61
Chet Rameyac50fba2014-02-26 09:36:43 -050062eval a2=("${@/#/\"-iname \'\"}")
63recho "${a2[@]}"
64
Jari Aalto31859422009-01-12 13:36:28 +000065eval a2=("${@/#/"-iname '"}")
66recho "${a2[@]}"
67
68unset a a2
69
70IFS=
71pat=('*.*')
72case $(ls ${pat[@]} 2>/dev/null) in
73'') echo '*.* BAD' ;;
74*) echo '*.* OK' ;;
75esac
76
77IFS="$oIFS"
78unset a a2 pat
79
80IFS=
81
82s='abc'
83
84set - ${s/b/1 2 3}
85echo $#
86echo "$1"
87
88IFS="$oIFS"
89unset s
90
91set -- ab cd ef
92foo="var with spaces"
93
94IFS=
95recho $foo
96recho "$foo"
97
98recho ${foo}"$@"
99recho ${foo}$@
100
101array=(ab cd ef)
102recho ${foo}"${array[@]}"
103recho ${foo}${array[@]}
104
105recho $(echo $foo)"$@"
106recho $(echo $foo)$@
107
108a=('word1 with spaces' 'word2 with spaces')
109set - ${a[@]/word/element}
110echo $#
111recho "$@"
112recho $@
113
114IFS="$oIFS"
115unset a a2 array foo