Invocar uma linha de comando com espaços de uma variável em um script bash [duplicado]

Esta pergunta já tem uma resposta aqui:

Executando comandos contendo espaço no bash respostas

Pensei que seria fácil, mas já perdi algumas horas com iss

Eu quero executar o seguinte comando cmake de dentro de um script bash. Em um terminal, digitei

cmake -G "Unix Makefiles" .

e funciona. Se eu copiar isso exatamente dentro do script bash, também funcionar

Mas o script deve funcionar em várias plataformas e pode ser "MSYS Makefiles" em vez de "Unix Makefiles". Portanto, quero colocar o comando em uma variável, onde o conteúdo depende da plataforma e executá-lo. No entanto, foi aqui que fiquei preso. Tentei todas as combinações de aspas simples / duplas em que consegui pensar, mas não cheguei a lugar algu

O que eu quero é algo nesse sentido

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

, mas sempre resulta em algumas variações do seguinte:

CMake Error: Could not create named generator "Unix

Eu percebo que eu poderia fazer

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

mas já que essa ligação precisa ser feita várias vezes, prefiro evitá-l

Alguma sugestão

questionAnswers(5)

yourAnswerToTheQuestion