我有一个makefile,其中包含一个Rules.mak文件,该文件包含我想要使用的工具。问题是,如果工具文件夹要提取版本或使用“本机”安装,则它们具有空闲选项。所以我希望包含工具提取规则(如果存在),否则我想包含原生文件。
这样的目标是:
if Tool/Rules.mak exists then
include Tool/Rules.mak
else
include common/Rules-Tool.mak
fi
我尝试过bash方式或make方式但是因为这是设置环境的前提条件我没有指定目标,但由于检查失败而使调用错误。
if [ -f Tool/Rules.mak ]
then
echo testfile exists!
fi
也
if [ -d ./Tool ]
then
echo testfile exists!
fi
以及带引号和类似的版本。问题是,当我输入时几乎所有时间都会出现以下错误:
Rules.mak:14: *** missing separator. Stop.
答案 0 :(得分:34)
你可以这样做(没有if
或else
)
-include Tool/Rules.mak
include common/Rules-Tool
如果Tool / Rules.mak不存在,您将不会收到错误。 (' - '可以解决问题)
在common / Rules-Tool中,然后使用?=运算符(“条件变量赋值运算符”)为变量赋值。仅当变量尚不存在时,此运算符才会分配值。 IOW,它不会覆盖预先存在的值。如果Tool / Rules.mak不存在或仅部分填充变量common / Rules-Tool将完成它们。
答案 1 :(得分:0)
如果由于某种原因您不想使用<errorResponse>
<httpCode>404</httpCode>
<httpMessage>Not Found</httpMessage>
<moreInformation>The requested URL was not found on this server</moreInformation>
</errorResponse>
运算符(也许您所要做的不仅仅是设置变量),那么您可以通过以下方式进行?=
:
if..then..else..fi