Довольно часто возникает задача вывести все элементы массива, вставив кастомный разделитель.
Решение в духе:
del=':'
join=${arr[@]}
join=${join//[[:space:]]/$del}
- работает только применительно к массивам, в которых почему-либо (внезапно!) элементы не содержат пробелов.
Решение с перебором элементов циклом:
del=':'
unset join
for ((i=0; i<${#arr[@]}; i++)); do
join+=${join:+$del}${arr[i]}
done
Может, я что-то упустил и есть некий аналог IFS для разделения элементов при выводе массивов операцией ${arr[@]} ??