Invocar una línea de comando con espacios de una variable en un script bash [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Ejecución de comandos que contienen espacio en bash 6 respuestas

Pensé que sería fácil, pero ya perdí algunas horas en esto.

Quiero ejecutar el siguiente comando cmake desde un script bash. En una terminal escribiría

cmake -G "Unix Makefiles" .

y funciona. Si copio esto exactamente dentro del script bash, también funciona.

Pero el script está destinado a trabajar en múltiples plataformas, y podría ser "MSYS Makefiles" en lugar de "Unix Makefiles". Por lo tanto, quiero poner el comando en una variable, donde el contenido depende de la plataforma y ejecutarlo. Sin embargo, aquí es donde me quedé atrapado. Intenté todas las combinaciones de comillas simples / dobles que se me ocurrieron, pero no llegué a ninguna parte.

Lo que quiero es algo similar a las líneas

c="cmake . -G \"Unix Makefiles\""
exec $c

pero siempre resulta en alguna variación de lo siguiente:

CMake Error: Could not create named generator "Unix

Me doy cuenta de que podría hacer

if test [... this is unix ...]
    cmake . -G "Unix Makefiles"
else
    cmake . -G "MSYS Makefiles
fi

pero como esta llamada debe hacerse varias veces, prefiero evitarla.

¿Cualquier sugerencia

Respuestas a la pregunta(5)

Su respuesta a la pregunta