IFS“暂时”不起作用

IFS“暂时”不起作用

我正在尝试输出a,b,c

这不起作用:

a=(a b c)
IFS=, echo "${a[*]}"

但这有效:

a=(a b c)
IFS=,
echo "${a[*]}"

有人知道为什么第一个不起作用吗?

答案1

这是因为变量被扩展了IFS 的新值实际上已设置。这在以下位置进行了描述https://www.gnu.org/software/bash/manual/bash.html#Simple-Command-Expansion

使用子 shell 设置值而不影响当前 shell:

(IFS=,; echo "${a[*]}")

相关内容