Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 正在中止,因为zip以状态12退出_Unix_Makefile_Zip - Fatal编程技术网

Unix 正在中止,因为zip以状态12退出

Unix 正在中止,因为zip以状态12退出,unix,makefile,zip,Unix,Makefile,Zip,make在尝试zip-u某些文件后,正在停止并报告错误代码12 错误代码12实际上是zip的退出状态,表示它“无事可做” 我不明白为什么这是一个非零退出状态。让zip安静地什么都不做不是更合适吗?如果zip没事干的话,这看起来并不是一个真正的问题 我可以抑制它:通过调用-zip-u告诉make忽略zip的非零退出状态。但这种方法的问题在于,12是我唯一想忽略的退出状态。所有其他的都指出了实际的问题,这些问题会导致我想中止make 也许我可以将一个变量设置为等于echo$?的输出,然后测试0或12

make
在尝试
zip-u
某些文件后,正在停止并报告错误代码12

错误代码12实际上是zip的退出状态,表示它“无事可做”

我不明白为什么这是一个非零退出状态。让zip安静地什么都不做不是更合适吗?如果zip没事干的话,这看起来并不是一个真正的问题

我可以抑制它:通过调用
-zip-u
告诉
make
忽略zip的非零退出状态。但这种方法的问题在于,12是我唯一想忽略的退出状态。所有其他的都指出了实际的问题,这些问题会导致我想中止
make

也许我可以将一个变量设置为等于
echo$?
的输出,然后测试0或12,但在.mk文件中的每一个
zip
语句之后,这样做似乎很困难


有没有优雅的方法来处理这个问题?

呃。。。作为一种快速而肮脏的解决方案,您可以使用外壳包装器:

#!/bin/ksh

zip "$@"
rc=$?

if [[ rc -eq 12 ]]; then
    exit 0
fi

exit $rc

或者,您可以在Makefile中执行几乎相同的内联操作,但它看起来有点难看(必须是一个带有重复的
$
符号等的shell一行)。

没有比您想象的更优雅的了。您可以完全忽略错误,或者检查您认为不是真正错误的特定错误。