Normalmente, read address
deve ler toda a linha de entrada na variável.
A causa mais provável do comportamento diferente no seu caso é que IFS
foi alterado de seu valor padrão.
Se você mudar a linha para isso, deve funcionar:
IFS= read -r address
E sugiro que você revise todo o seu script para lugares que alteram IFS
,
e, se possível, evite alterá-lo.