运行这些命令会产生预期结果
$ bash --version
GNU bash, version 4.1.11(2)-release
$ foo=(111 222 333)
$ IFS=, cat <<< "${foo[*]}"
111,222,333
Run Code Online (Sandbox Code Playgroud)
但是,在Bash 4.2中显示IFS值被忽略
$ bash --version
GNU bash, version 4.2.0(1)-release
$ foo=(111 222 333)
$ IFS=, cat <<< "${foo[*]}"
111 222 333
Run Code Online (Sandbox Code Playgroud)
是什么造成了这种差异?
我在这里找到了答案
http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00065.html
看起来这一直是一个错误.根据Chet的说法,重定向永远不应该访问临时环境(IFS在这种情况下)