我正在尝试编写一个小的shell脚本来查找特定目录中的已签名和未签名的jar。虽然脚本工作正常,直到4-5罐,如果我的目录有更多的罐子(大约25个罐子),它会开始显示不可预测的结果。我不确定,但可能的原因可能与STDIN / STDOUT的缓冲有关。我试图在相关的帖子中找到解决方案,但无法得到明确的答案。
这是我的脚本:(它需要JAVA_HOME作为参数):
#! /bin/bash
JV_HOME=$1
for i in `ls *.jar`
do
echo "scanning $i ..."
FILE=$i
$JV_HOME/bin/jarsigner -verify -verbose -certs $FILE | grep "jar verified" ;
if [ $? -eq 0 ]; then
echo "\n$FILE is code-signed\n"
else
echo "\n$FILE is unsigned/unverified..\n"
fi
对于某些jar,它表示jar是无符号的,当使用以下命令单独检查它们时实际签名:
$ JAVA_HOME / bin / jarsigner -verify -verbose -certs
上述脚本可能出现什么问题?
提前致谢, Pabi