使用Makefile,Word意外(期待“)”)

时间:2012-04-20 06:05:41

标签: bash makefile less-unix

我正在创建一个makefile而且我正在处理一个没有依赖项的目标,它检查当前目录中是否存在名为README的文件,如果存在,请使用less来读取它,否则就退出:no no任何错误 - 如果是这种情况,运行目标的命令应该不会打印到控制台。

我尝试了几种不同的方式,但似乎没有任何效果(PAGER只是一个等于更少的var):

read :
   ifneq ("$(wildcard README)","")
      -@$(PAGER) README
   endif

还有这段代码

read :
   -@for file in *;\
   do \
       if [ ${file} == "README" ]; then\
           $(PAGER) "README" ;\
       fi;\
   done

对于第一个块,我不断得到类似于/ bin / sh的错误:语法错误:单词意外(期待“)”)并且对于我的生活我只是不明白它的意思。我当然不认为有语法错误,也许我误用make。

对于后一个代码,我得到了==。

的意外操作符错误

我也尝试过这样简单的事情,比如这两个单线程解决方案,但也会遇到类似的错误:

-@test -a README && less README
-@[ -a README ] && less README

非常感谢任何帮助。

编辑:我正在进一步挖掘并看到一些有希望的东西并明确地将我的shell设置为/ bin / bash(SHELL:= / bin / bash)但没有骰子。

2 个答案:

答案 0 :(得分:1)

您应该尝试在单独的* .sh文件中提取shell代码,以便可以在makefile中将它们指定为命令(并确保* .sh文件是可执行的)。

答案 1 :(得分:1)

read:
        @if [ -e README ]; then less README; fi