> I think the first "local" statement should be: > local names="$1" > Otherwise the function might be tricked by maliciously constructed file names. How? There's no recursive expansion in shell.