使用 bash 管道的 CMakeexecuting_process

lin*_*amm 1 bash cmake

在我的文件中,CMakeLists.txt我需要执行位于/include/ff 下的mapping_string.sh 脚本。该脚本需要用户输入“y”才能继续。

我尝试了这种方法,但我只得到了“mapping_string.sh”字符串的无限打印。

execute_process(
    COMMAND yes | bash mapping_string.sh
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/include/ff
    RESULT_VARIABLE FF_MS_RES
)
Run Code Online (Sandbox Code Playgroud)

fab*_*ian 5

使用命令内置的功能execute_process而不是管道:

命令作为管道同时执行,每个进程的标准输出通过管道传输到下一个进程的标准输入。所有进程都使用一个标准错误管道。

execute_process(
    COMMAND yes
    COMMAND bash mapping_string.sh
    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/include/ff
    RESULT_VARIABLE FF_MS_RES
)
Run Code Online (Sandbox Code Playgroud)