这给了我一个错误,即使由于.IGNORE指令而忽略它也很烦人。当 $(basename $<)。err 不存在时,会显示错误。配方中的行如下所示:
[ -r "$(basename $<).err" ] && mv -f $(basename $<).err anotherName.err
我认为方括号测试返回 false ,这被make解释为错误。
答案 0 :(得分:2)
不确定。测试失败导致表达式以非0(错误)退出代码退出,这使得解释成为错误。
您可以反转测试:
[ ! -r "$(basename $<).err" ] || mv -f $(basename $<).err anotherName.err
或添加&#34;否则为真&#34;:
[ -r "$(basename $<).err" ] && mv -f $(basename $<).err anotherName.err || true