Estou tentando armazenar uma string de comando em uma variável para execução posterior. O problema é que o comando inclui um argumento de parâmetro com espaço em branco. Quando o comando é executado, em vez de ver o argumento como uma única string, o shell o interpreta como dois, incluindo os caracteres de aspas duplas:
Exemplo:
$ CMD_CMAKE="cmake -G \"MSYS Makefiles\" ../../source/poppler-0.79/"
$ ${CMD_CMAKE}
CMake Error: Could not create named generator "MSYS
Eu preciso passar -G "MSYS Makefiles"
para o cmake
comando. Em vez disso, -G \"MSYS
e Makefiles\"
estão sendo passados.
Já tentei todos os seguintes sem sucesso:
$ CMD_CMAKE='cmake -G "MSYS Makefiles" ../../source/poppler-0.79/'
$ CMD_CMAKE="cmake -G 'MSYS Makefiles' ../../source/poppler-0.79/"
$ CMD_CMAKE="cmake -G MSYS\ Makefiles ../../source/poppler-0.79/"
$ CMD_CMAKE="cmake -G MSYS\\ Makefiles ../../source/poppler-0.79/"
$ GEN="MSYS Makefiles" && CMD_CMAKE="cmake -G ${GEN} ../../source/poppler-0.79/"
$ GEN="MSYS Makefiles" && CMD_CMAKE="cmake -G \"${GEN}\" ../../source/poppler-0.79/"
$ CMD_CMAKE=$(echo "cmake -G \"MSYS Makefiles\" ../../source/poppler-0.79/")
$ CMD_CMAKE=$(echo 'cmake -G "MSYS Makefiles" ../../source/poppler-0.79/')
Já fiz algumas pesquisas no Google, mas não estou encontrando nenhuma resposta. Talvez porque eu não esteja usando a terminologia correta.
Editar: Desculpe, acho que deveria ter postado essa pergunta no stackoverflow.com.