Bash 如何将多个变量连接到一个命令并执行它?

Bash 如何将多个变量连接到一个命令并执行它?,bash,cmake,Bash,Cmake,对于构建应用程序,我使用CMake。 我在带有多个变量的脚本中解析CMake命令: CMAKE_COMMAND=" \ $CMAKE \ -G "$Build_TOOL_CMAKE" \ [...]" 解析该命令后,我使用printf打印它以进行控制: printf "\n${CMAKE_COMMAND}\n" 然后我最终用以下命令执行命令: $CMAKE_COMMAND 只要我有“忍者”作为生成器(选项-->BUILD\u TOOL\u CMAKE=“Ninja”),这个脚本就可以工作,

对于构建应用程序,我使用CMake。 我在带有多个变量的脚本中解析CMake命令:

CMAKE_COMMAND=" \
$CMAKE \
-G "$Build_TOOL_CMAKE" \
[...]"
解析该命令后,我使用
printf
打印它以进行控制:

printf "\n${CMAKE_COMMAND}\n"
然后我最终用以下命令执行命令:

$CMAKE_COMMAND
只要我有“忍者”作为生成器(选项-->
BUILD\u TOOL\u CMAKE=“Ninja”
),这个脚本就可以工作,因为它没有空格字符

现在我想使用“EclipseCDT4-UnixMakefiles”作为生成器。我尝试了几种转义空格字符的方法,例如:

CMAKE_COMMAND=" \
$CMAKE \
-G \"$Build_TOOL_CMAKE\" \
[...]"

打印的命令在某些情况下是正确的,但执行该命令会导致以下错误:

CMake错误:无法创建命名生成器Eclipse

CMake错误:无法创建命名生成器“Eclipse”

这导致了这样一种假设,即转义空格有问题,但
printf
有效:

cmake.exe -G"Eclipse CDT4 - Unix Makefiles" -S sourcefolder -B buildfolder # printf $CMAKE_COMMAND

我遗漏了什么吗?可能仅仅通过变量(
$CMAKE_命令
)执行也是错误的方法。

您可以使用CMAKE的
配置_文件
命令:

将所有变量放入
命令中。
并将其写入
命令中

configure_file(command.in, command)
文件
命令。在
中可以如下所示:

${CMAKE_COMMAND} -G ${Build_TOOL_CMAKE}

这对我没有帮助。我不使用xargs。我不知道该放在哪里。我无法触摸CMakeLists.txt
${CMAKE_COMMAND} -G ${Build_TOOL_CMAKE}