我正在制作一个makefile,我正在处理一个没有依赖关系的目标,它检查当前目录中是否存在名为README的文件,如果存在,请使用less读取它,否则完全退出:不给出任何错误- - 如果是这种情况,运行目标的命令不应向控制台打印任何内容。
我尝试了几种不同的方法,但似乎没有任何效果(PAGER 只是一个等于 less 的 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) 但没有骰子。