Let us define `foo`: $ foo="*" Now, try echo without quotes: $ echo $foo File1 File2 The replacement of `*` with a list of filenames is called _pathname expansion_. It can be suppressed with with double-quotes: $ echo "$foo" * In addition, double-quotes will prevent _brace expansion_, _tilde expansion_, and _word splitting_. For completeness, try echo with single quotes: $ echo '$foo' $foo Single quotes prevent the shell from making any substitutions at all.