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

현재 쉘에 영향을 주지 않고 값을 설정하려면 서브쉘을 사용하십시오.

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

관련 정보