pngcheck
几乎是完美的。但是pngcheck
以最简单的形式输出以OK:
或ERROR:
开头的行。这意味着我必须解析一个输出字符串,而我宁愿只检查一个返回值。
我查看了pngcheck.c
源代码,对PNG有效性进行彻底检查是一件很艰辛的事情-不仅是魔术数字检查。因此,目前我能做的最好的事情就是创建一个简单的pngcheck.sh
,它调用pngcheck
并解析输出字符串,然后依次解析exit 0
或exit 1
。
但是我想检查是否有一个简单的或更多的“时尚”解决方案。
谢谢!
最佳答案
当我查看pngcheck.c的源代码(PNGcheck,2007年7月7日的版本2.3.0)时,我相信它确实设置了返回代码。在main()的末尾附近:
717 if (num_errors > 0)
718 err = (num_errors > 127)? 127 : (num_errors < 2)? 2 : num_errors;
719 else if (num_warnings > 0)
720 err = 1;
...
num_errors是失败的文件数,num_warnings是有警告的文件数。然后它以“return err;”退出。
因此,所有正常的返回码为0,仅警告为1,失败的文件数为2或更高(最大值127)。
这也与我对Ubuntu上安装的二进制文件所做的小型测试一致。
pngcheck -q /etc/profile >/dev/null; echo $? # returns 2
pngcheck -q cpu50.png >/dev/null; echo $? # returns 0
关于linux - 用于bash/linux的简单一线工具,以检查PNG是否有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35093559/