为什么bash / echo不能在这个CMake脚本中工作?

时间:2015-04-12 11:46:46

标签: linux bash cmake sh

我的CMakeLists.txt正确构建my_target

我尝试将此虚拟命令添加为试用后构建步骤:

 ADD_CUSTOM_COMMAND (
        TARGET my_target POST_BUILD
        COMMAND "echo I made `ls ${MY_DIR} | wc -l` things")

当我运行make my_target时,

会失败(在构建之后)
/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found

如果我将部件从“echo”复制粘贴到“thing”中,它就可以正常运行

I made 3 things

“/ bin / sh:1”前缀表示shell 以“echo ...”作为命令运行,我尝试将“echo”更改为“bash echo”那么为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

/bin/sh: 1: echo I made `ls /foo/bar | wc -l` things: not found

错误消息意味着某些东西正在尝试执行一个名为“{1}}的空格和刻度”的命令。

所以看起来echo I made `ls /foo/bar | wc -l` things将整个报价字符串作为可执行文件传递。删除外部引号应该可以解决这个问题。