【发布时间】:2015-06-05 08:55:02
【问题描述】:
我正在尝试编写一个函数来比较产品的版本。
我的版本可以是 XX.XX.XX 或 xx-xx-xx 或者用“.”分隔。或者 ”-” 字段数可以不同,可以是 xx.xx 或 xx.xx.xx 或 xx.xx.xx.xx
我要比较的版本在分隔符和字段上是相同的
#!/bin/ksh
set -x
compareVersions ()
{
typeset IFS='.'
typeset -a v1=( $1 )
typeset -a v2=( $2 )
typeset n diff
for (( n=0; n<4; n+=1 )); do
diff=$((v1[n]-v2[n]))
if [ $diff -ne 0 ] ; then
[ $diff -le 0 ] && echo '-1' || echo '1'
return
fi
done
echo '0'
} # ---------- end of function compareVersions ----------
#compareVersions "6100-09-03" "6100-09-02"
compareVersions "6100.09.03" "6100.09.02"
请检查并给我建议
我已经尝试过下面的事情,我有其他帖子..但没有运气..希望应该做一些修改。我必须跨平台使用(linux、solaris、AIX),所以我更喜欢 KSH,不过我只知道 shell 脚本。
【问题讨论】: