I'm no bash expert, but I did take a quick look at bash release notes. One of the differences is called out under the heading "New Features In Bash" between 4.4-beta2 and 4.4-rc2:
a. Using ${a[@]} or ${a[*]} with an array without any assigned elements when the nounset option is enabled no longer throws an unbound variable error. http://git.savannah.gnu.org/cgit/bash.git/tree/CHANGES?id=a0c0a00fc419b7bc08202a79134fcd5bc0427071#n62 I think this change explains the difference in "Version 3". With version 2, the difference is in how here-strings are handled. $ echo $BASH_VERSION; od -ta <<<$(echo -e "a\nb\nc") 4.3.30(1)-release 0000000 a sp b sp c nl 0000006 $ echo $BASH_VERSION; od -ta <<<$(echo -e "a\nb\nc") 4.4.5(1)-release 0000000 a nl b nl c nl 0000006 With this knowledge in hand, I returned to the change notes and found between 4.4-alpha and 4.4-beta: z. Bash no longer splits the expansion of here-strings, as the documentation has always said. http://git.savannah.gnu.org/cgit/bash.git/tree/CHANGES?id=a0c0a00fc419b7bc08202a79134fcd5bc0427071#n437 So for better or for worse, I think these changes are both deliberate and documented in the release notes. Jeff