`array_to_lines()` calls `echo` for every element in the array, which
is wasteful and scales very poorly.
This commit modifies `array_to_lines()` so that it uses a single call
to `printf` to print all array elements.
This issue was pointed out by reddit user u/oh5nxo.
array_to_lines() {
local array=("$@")
- local item
- for item in "${array[@]}"; do
- echo "$item"
- done
+ # Don't print an empty line if array is empty
+ if (( ${#array[@]} > 0 )); then
+ printf "%s\n" "${array[@]}"
+ fi
}
array_sort() {