Bash 如何将多个变量连接到一个命令并执行它?
对于构建应用程序,我使用CMake。 我在带有多个变量的脚本中解析CMake命令: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_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}