Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

array matching: inconsistent behaviour ?



Or am I doing the matching wrong? I am storing file names in an array.
Later I match filenames against those in the array for various purposes.
The filenames contain spaces and in this unfortunate case round brackets.
File names with brackets are failing the match.

FOO=()
x="a file"
y="a(file)b"

FOO+=($x)
FOO+=($y)

print $FOO[(i)$x]
print $FOO[(i)$y]

#  Now I found, that if i quote the string while matching then the comma
file matches, but now the space file fails.

print $FOO[(i)$x:q]
print $FOO[(i)$y:q]

If I escape/quote the string when adding to the array then again one of the
two matches fails. In any case, I cannot escape the names when inserting
into the array, as often double quoting/escaping happens when methods are
called repeatedly, and external commands give errors if they get quoted
filenames. I only quote the string finally if I am "eval"ing a command.

I'd like to know if I am doing this wrong, is there a consistent way of
matching the string inside the array.
-- 
 rahul


Messages sorted by: Reverse Date, Date, Thread, Author