|

楼主 |
发表于 2009-9-22 11:53:30
|
显示全部楼层
Post by gaosboy;2029011
代码:
parse_version ()
{
I=0
STR=$1"."
while true
do
V[$I]=${STR%%.*}
STR=${STR#*.}
if [ -z $STR ]
then
break
fi
I=$[ $I + 1 ]
done
echo ${V}
}
至于比较~不赘述了吧
gaosboy兄的加点凑整算法真是神来之笔, 我稍作修改, 请指正.
- version_is1gt2()
- {
- local STR1=$1"."
- local STR2=$2"."
- local V1
- local V2
- while true
- do
- V1=${STR1%%.*}
- V2=${STR2%%.*}
- STR1=${STR1#*.}
- STR2=${STR2#*.}
- if [ -z $V1 ] || [ -z $V2 ]; then
- [ -z $V1 ] && [ -z $V2 ] && return 0
- [ -z $V2 ] && return 1
- return 2
- fi
- #echo "V1=$V1, V2=$V2"
- #compare
- [ $V1 -eq $V2 ] && continue
- [ $V1 -gt $V2 ] && return 1
- return 2
- done
- #never come here.
- }
复制代码
函数名修改了一下, 这样通过函数名就能知道该返回什么值, 减少用错的概率. |
|