improve of cmpl.
[bush.git] / tests / array6.sub
blobfd6adacafd5e11eefbd831afb36d672897bd1e4a
1 #   This program is free software: you can redistribute it and/or modify
2 #   it under the terms of the GNU General Public License as published by
3 #   the Free Software Foundation, either version 3 of the License, or
4 #   (at your option) any later version.
6 #   This program is distributed in the hope that it will be useful,
7 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #   GNU General Public License for more details.
11 #   You should have received a copy of the GNU General Public License
12 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
14 # test cases for array quoting and escaping fixed post bush-3.2-release
16 oIFS="$IFS"
18 a=(a b c)
19 echo ${a[@]}
21 a2=("${a[@]/#/"-iname '"}")
22 recho "${a2[@]}"
24 echo "${dbg-"'hey'"}"
25 echo "${dbg-"hey"}"
26 echo "${dbg-'"'hey}"
27 echo "${dbg-'"hey'}"
29 unset a a2
31 IFS=
32 a2=(${a[@]/#/"-iname '"})
33 recho "${a2[@]}"
35 IFS="$oIFS"
36 unset a a2
38 a=('a b' 'c d' 'e f')
40 recho ${a[@]:1:2}
41 recho "${a[@]:1:2}"
43 IFS=
44 recho ${a[@]:1:2}
45 recho "${a[@]:1:2}"
47 IFS="$oIFS"
48 unset a a2
50 a=(abc def)
52 # Prevent word splitting
53 #IFS= 
55 a2=("${a[@]/#/"-iname '"}") 
56 recho "${a2[@]}"
58 eval a2=("${a[@]/#/\"-iname \'\"}") 
59 recho "${a2[@]}"
61 eval a2=("${a[@]/#/"-iname '"}") 
62 recho "${a2[@]}"
64 a2=("${a[@]/#/-iname \'}") 
65 recho "${a2[@]}"
67 eval a2=("${a[@]/#/-iname \'}") 
68 recho "${a2[@]}"
70 set -- abc def
72 a2=("${@/#/"-iname '"}") 
73 recho "${a2[@]}"
75 eval a2=("${@/#/\"-iname \'\"}") 
76 recho "${a2[@]}"
78 eval a2=("${@/#/"-iname '"}") 
79 recho "${a2[@]}"
81 unset a a2
83 IFS=
84 pat=('*.*')
85 case $(ls ${pat[@]} 2>/dev/null) in
86 '')     echo '*.* BAD' ;;
87 *)      echo '*.* OK' ;;
88 esac
90 IFS="$oIFS"
91 unset a a2 pat
93 IFS=
95 s='abc'
97 set - ${s/b/1 2 3}
98 echo $#
99 echo "$1"
101 IFS="$oIFS"
102 unset s
104 set -- ab cd ef
105 foo="var with spaces"
107 IFS=
108 recho $foo
109 recho "$foo"
111 recho ${foo}"$@"
112 recho ${foo}$@
114 array=(ab cd ef)
115 recho ${foo}"${array[@]}"
116 recho ${foo}${array[@]}
118 recho $(echo $foo)"$@"
119 recho $(echo $foo)$@
121 a=('word1 with spaces' 'word2 with spaces')
122 set - ${a[@]/word/element}
123 echo $#
124 recho "$@"
125 recho $@
127 IFS="$oIFS"
128 unset a a2 array foo