On Thu, May 7, 2015 at 7:00 PM, Peter Stephenson wrote: > $dir contains a straight string with unquoted parentheses. The > ~filepattern then turns those parentheses into pattern characters. > > Yes, I understand. > I'm not sure why you want filepattern anyway, but > > I tried to simplify my function to make my problem obvious. In my "real" function, I am collecting several function arguments into a combined pattern, which is why I need to use this indirect method. local filepattern="**/*" > print -c ${dir}${~filepattern} > > ought to work. Otherwise you'll need to quote metacharacters in dir, > which is possible but should be unnecessary. > Yes, but as my second example demonstrates: if I quote my filepattern, it then doesn't work for files with spaces in their names. I was hoping for a solution where it would be possible to get this to work for both situations.