I'm trying to create a bash function for use in auto completion, but I've run into bash behavior I don't understand. All I want to do is generate a list of the file names from a certain directory. I have a line
filenames=$(for file in `ls -1 mydir`; do echo -n "${file} " ; done ) This seems to produce the correct list: bash> echo $filenames resources doc src bash> However, it doesn't work with the compgen function: bash> compgen -W "${filenames}" -- s bash> ???? On the other hand, if I create the same variable manually, it works: bash> filenames1="resources doc src " bash> compgen -W "${filenames1}" -- s src bash> As far as I can tell, the variables $filenames and $filenames1 have the same values. Yet, they behave differently when used in an argument. Is there some hidden aspect to a bash variable that I'm not seeing? -- View this message in context: http://www.nabble.com/Puzzling-discrepancy-in-bash-variables-tp20003296p20003296.html Sent from the Gnu - Bash mailing list archive at Nabble.com.