我想从execute_process
中的标题中提取字符串。
但是命令有一个错误,我尝试了很多东西,总是出现同样的错误。
execute_process
(
COMMAND
cat $(version_h)| grep -a"定义myVersion" | cut -d" " -f3 | cut -d'"' -f2`
OUTPUT_VARIABLE _Version)
如果我在控制台行中编写命令,则没有问题。
错误说:"解析错误。功能缺失结束")"。取而代之的是找到带有文本的未终止字符串" "
答案 0 :(得分:0)
execute_process()
仅处理进程及其参数,即不涉及shell。
因此,您有两个主要选择:
execute_process(COMMAND bash -c "..." OUTPUT_VARIABLE _Version)
execute_process(COMMAND cat ... COMMAND grep ... COMMAND cut ... COMMAND cut ... OUTPUT_VARIABLE _Version)
在第二个版本中,命令的标准输出和标准输入链接在一起。
如果你想做更复杂的事情,你将不得不创建一个单独的脚本并以一个过程而不是面向shell的方式调用它,即选项1.
答案 1 :(得分:0)
问题是我需要删除引号字符,我猜Cmake和bash命令存在混淆。
execute_process(COMMAND cat ... COMMAND grep ... COMMAND cut ... COMMAND cut -c2- COMMAND rev COMMAND cut -c2- COMMAND rev OUTPUT_VARIABLE _Version)