Makefile双&符号(&&)给出错误

时间:2017-07-14 13:35:35

标签: makefile

这给了我一个错误,即使由于.IGNORE指令而忽略它也很烦人。当 $(basename $<)。err 不存在时,会显示错误。配方中的行如下所示:

[ -r "$(basename $<).err" ] && mv -f $(basename $<).err anotherName.err

我认为方括号测试返回 false ,这被make解释为错误。

1 个答案:

答案 0 :(得分:2)

不确定。测试失败导致表达式以非0(错误)退出代码退出,这使得解释成为错误。

您可以反转测试:

[ ! -r "$(basename $<).err" ] || mv -f $(basename $<).err anotherName.err

或添加&#34;否则为真&#34;:

[ -r "$(basename $<).err" ] && mv -f $(basename $<).err anotherName.err || true