我需要为我的 Mac 应用程序创建一个包,我正在使用 PackageMaker
我需要检查 JVM 版本,如果它小于 10.6,那么我将中止安装并要求用户首先安装 JVM,
因为我正在使用以下 shell 脚本
REQUIRED_VERSION=106
#Converting the value in numeric value for comparison in later part of the script REQUIRED_VERSION=`echo $REQUIRED_VERSION | sed -e 's;\.;0;g'`
#Redirecting complete output of java -version to tmp.ver file
java -version >tmp.ver 2>&1
#Getting current version from the tmp.ver file
VERSION=`cat tmp.ver | grep "java version" | awk '{ print substr($3, 2, length($3)-2); }'`
rm tmp.ver
#Coverting into numeric value
VERSION=`echo $VERSION | awk '{ print substr($1, 1, 3); }' | sed -e 's;\.;0;g'`
echo $VERSION
if [ $VERSION ]
then
if [ $VERSION -gt $REQUIRED_VERSION ] || [ $VERSION -eq $REQUIRED_VERSION ]
then
echo "requirement matched"
exit 1;
else
echo "lower version"
exit 0;
fi
else
echo "not able to find java version"
exit 0;
fi
并且在包装制造商中,我已经通过检查,但在所有情况下,它都达到了失败条件,即书面类型不正确,任何人都可以帮助我,用“什么是正确的返回值形式的 shell 脚本”那个包maker 可以了解其脚本通过或失败。