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 respostasPensei 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