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