LINUX.ORG.RU

История изменений

Исправление 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>