我正在尝试输出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[*]}")