История изменений
Исправление legolegs, (текущая версия) :
function команда {
echo '234 433 "в третьем элементе могут быть пробелы" "в четвёртом $BASH [$USD] $(whoami)"'
}
IFS=$'\n' read -rd '' -a ar < <( команда | xargs printf "%s\n")
# проверка:
printf '<%s>\n' "${ar[@]}"
<234>
<433>
<в третьем элементе могут быть пробелы>
<в четвёртом $BASH [$USD] $(whoami)>
А вот что выдаст eval:
eval ar=($(команда))
printf '<%s>\n' "${ar[@]}"
<234>
<433>
<в третьем элементе могут быть пробелы>
<в четвёртом /bin/bash [] username>
Исходная версия legolegs, :
function команда {
echo '234 433 "в третьем элементе могут быть пробелы" "в четвёртом $BASH [$USD] $(whoami)"'
}
IFS=$'\n' read -rd '' -a ar < <( команда | xargs printf "%s\n")
# проверка:
printf '<%s>\n' "${ar[@]}"
<234>
<433>
<в третьем элементе могут быть пробелы>
<в четвёртом $BASH [$USD] $(whoami)>
А вот что выдаст eval:
# eval ar=($(команда))
# printf '<%s>\n' "${ar[@]}"
<234>
<433>
<в третьем элементе могут быть пробелы>
<в четвёртом /bin/bash [] username>