make
某些文件后, zip -u
暂停并报告错误代码为12。
错误代码12实际上是zip的退出状态,表示它“无事可做”。
我不明白为什么这是一个非零退出状态。让zip安静地什么都不做是不是更合适?如果zip无关,它似乎不是一个实际问题。
我可以压制它:通过调用make
告诉-zip -u
忽略zip的非零退出状态。但是这种方法的问题是12是我想忽略的唯一退出状态。所有其他人都表示会导致我想要中止的实际问题make
。
也许我可以设置一个等于echo $?
输出的变量然后测试0或12但是在.mk文件中的每个zip
语句之后执行此操作似乎很奇怪。
有没有一种优雅的方法来处理这个问题?
答案 0 :(得分:5)
错误......作为快速而肮脏的解决方案,您可以使用shell包装器:
#!/bin/ksh
zip "$@"
rc=$?
if [[ rc -eq 12 ]]; then
exit 0
fi
exit $rc
或者,您可以在Makefile中执行几乎相同的内联,但它看起来有些难看(必须是带有重复$
符号等的shell单行内容。)