lhunath 1202127589 learn In the following example: echo $VAR -- If you do not quote $VAR bash will split its content up into words, removing all whitespace, and feed each word as a separate argument to echo; echo concatenates all its arguments separating them by a single space. lhunath 1204121119 forget lhunath 1204121214 learn echo $VAR -- If you do not quote $VAR bash will split its content up into words, removing ALL whitespace (newlines, spaces, tabs), and feed each "word" as a separate argument to echo. Echo then concatenates all its arguments separating them by ONE single space. lhunath 1205238086 forget lhunath 1205239382 learn echo $var; rm $file -- If you do not quote $var bash will split its content up into words, *removing* all whitespace (newlines, spaces, tabs) from it. Each word is fed as a separate argument to echo or rm. Echo prints all its arguments separating them by a SINGLE space while rm will remove the files denoted by every WORD. lhunath 1242638453 forget lhunath 1242638629 learn echo $foo; rm $foo -- If you leave $foo unquoted, bash will *remove* all whitespace (newlines, spaces, tabs) while expanding it, take each *word* as a separate argument. `echo` prints these words separated by one space and `rm` deletes each word. So ALWAYS *quote* your parameter expansions: echo "$foo" lhunath 1485537531 forget lhunath 1485537559 learn echo $foo; rm $foo -- If you leave $foo unquoted, bash will *remove* all whitespace (newlines, spaces, tabs) while expanding it, take each *word* as a separate argument. `echo` prints these words separated by one space and `rm` deletes each word. So ALWAYS *quote* your parameter expansions: echo "$foo" -- http://mywiki.wooledge.org/WordSplitting