Sim. Defina a variável IFS
(que geralmente contém espaço, tabulação, nova linha) para ser apenas uma nova linha. Dessa forma, espaços e tabulações não serão usados para a divisão de palavras. Isso lhe dará a saída desejada.
IFS=$'\n'
set -o noglob # disable the second effect of leaving that
# $(...) unquoted.
./name_value.sh $(echo "no_spaces"; echo "with spaces")
No entanto, o que eu gostaria de fazer é ler o script de stdin.
# name_value.sh
IFS= read -r name
IFS= read -r value
echo "Name=$name"
echo "Value=$value"
então
( echo no_spaces; echo with spaces ) | ./name_value.sh
Eu acho que essa abordagem é mais robusta.