Неявный конечный символ новой строки -— это не , добавленный встроенной командой readarray
, а строкой здесь -(<<<
)из bash
, см. . Почему bash здесь -строка добавляет завершающий символ новой строки? . Вы можете избавиться от этого, напечатав строку без новой строки -с помощью printf
и прочитав ее с помощью метода подстановки процесса -< <()
readarray -td, ARR < <(printf '%s' "$VAR")
declare -p ARR
теперь будет правильно генерироваться
declare -a ARR=([0]="a" [1]="b" [2]="c" [3]="d")