![IFS“暂时”不起作用](https://linux22.com/image/210073/IFS%E2%80%9C%E6%9A%82%E6%97%B6%E2%80%9D%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在尝试输出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[*]}")