shell - CMake 的 execute_process 和任意 shell 脚本

标签 shell command-line cmake

CMake的execute_process command 似乎只让您执行一个进程 - 而不是您可以提供命令 shell 的任意行。问题是,我想使用管道、文件描述符重定向等 - 而这似乎是不可能的。另一种选择对我来说会很痛苦(我认为)......

我该怎么办?

PS - CMake 2.8 和 3.x 答案很有趣。

最佳答案

您可以执行任何 shell 脚本,使用您的 shell 支持在字符串参数中接收脚本。

例子:

execute_process(
    COMMAND bash "-c" "echo -n hello | sed 's/hello/world/;'" 
    OUTPUT_VARIABLE FOO
)

将导致 FOO包含world .

当然,您需要小心转义引号和反斜杠。还请记住,运行 bash 只能在具有 bash 的平台上运行 - 即它不能在 Windows 上运行。

关于shell - CMake 的 execute_process 和任意 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35689501/

相关文章:

java - 命令行参数

CMake "FILES_MATCHING_PATTERN"复制空目录

c++ - boost +CMake : no suitable build variant

unix - 在 Unix 上结合 echo 和 cat

shell - csh 脚本 foreach 循环中的多个单词列表

testing - 您将如何有效地测试带有许多开关和参数的命令行软件

c++ - CMake:如何为测试子目录项目重用目标文件?

linux - shell 参数不随命令传递

shell - 在 Windows 7 上使用 scala.sys.process 调用 echo

php - 启动和停止(命令行)程序并获取其输出