GNUMAKE:在更新之前查找文件中是否存在字符串

时间:2013-11-15 02:23:58

标签: makefile gnu-make

我试图将“description”添加到$(@)/ etc / release文件中,只要它还没有

$(PROJECTDIR)/projectroot:
if [ grep -q "description" "$(@)/etc/release" ]; then \
  echo "description :" $(PLATFORM) >> $(@)/etc/release; \
fi

但它抛出错误“/ bin / sh:第0行:[:太多的参数”并且没有对发布文件做任何事情。你能帮忙吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

根据我的评论(以及我即将编辑但不能编辑)。你想要的是:

$(PROJECTDIR)/projectroot:
        if ! grep -q description '$(@)/etc/release'; then \
          echo 'description :' $(PLATFORM) >> '$(@)/etc/release'; \
        fi

或(假设你没有空格,你希望echo在$(PLATFORM)的值内为你规范化):

$(PROJECTDIR)/projectroot:
        if ! grep -q description '$(@)/etc/release'; then \
          echo 'description : $(PLATFORM)' >> '$(@)/etc/release'; \
        fi