Las comillas dentro de una variable son ignoradas

Quiero pasar un argumento arsync a partir de una variable como esta:

myopts='-e "ssh -p 1234" -a'
rsync $myopts 192.168.0.1:/a /a

Por alguna razón esto no funciona. Incluso encontréesta página web donde dice que no funcionará:

### NO NO NO: this passes three strings:
###      (1)  "my
###      (2)  multiword
###      (3)  argument"
MYARG="\"my multiword argument\""
somecommand $MYARG

### THIS IS NOT (!!!!) THE SAME AS ###
command "my multiword argument"

### YOU NEED ###
MYARG="my multiword argument"
command "$MYARG"

Desafortunadamente no dicepor qué no funcionará

El script que contiene elrsync Call es usado por muchos otros scripts, así que solo puedo cambiarlo de una manera compatible. Una solución que no funciona es usar una matriz:

myopts=('-a' '-v' '-z') # new way, would work
myopts='-a -v -z'       # old way, breaks
rsync "${myopts[@]}" 192.168.0.1:/a /a

Las opciones de la variable son completamente ignoradas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta