Compare: for a in "$(echo 1 2)"; do echo "x${a}x"; done x1 2x for a in $(echo 1 2) ; do echo "x${a}x"; done x1x x2x
a="$(echo 1 2)"; echo "x${a}x" x1 2x a=$(echo 1 2); echo "x${a}x" x1 2x Shell quoting is difficult enough; why is such an inconsistency making it even more confusing? Uwe Waldmann might give a clue in his excellent "Guide to Unix shell quoting": Note that in these [assignment + others] cases, the shell syntax allows only a single word, not a sequence of words, so that blank interpretation or expansion of globbing characters might result in something syntactically illegal. In other words: In order to save you from some very obvious syntax errors, I'll make quoting even more confusing than it already is. Sorry but I am not grateful at all. Or is there a better rationale for this design?