Почему это:
arr=(1 2 4 8 16)
IFS=,
echo "${arr[*]}"
распечатать 1,2,4,8,16
(это то, что я хочу), но это не так:
arr=(1 2 4 8 16)
IFS=, echo "${arr[*]}"
?
Я хотел бы иметь временный IFS
без необходимости устанавливать его, а затем сбрасывать/сбрасывать его.
IFS=, command eval 'echo "${arr[*]}"'
или(IFS=,; echo "${arr[*]}")
. Подробнее о первом здесь, второй только создается подоболочка для определения IFS на время ее действия - person Aaron   schedule 23.08.2019echo
(с его модифицированной версиейIFS
). Вам нужно изменитьIFS
для shell (как в первом примере), а не дляecho
(который игнорирует унаследованное значениеIFS
). - person chepner   schedule 23.08.2019