|
发表于 2009-9-25 00:03:58
|
显示全部楼层
实在不知道你要做什么。
比较类似这样的东西:
./atom_is1gt2 ./app-sys/bash-test-4.3.3-r1.umk ./app-sys/bash-test1-4.3.4.umk
bash版本:- bash --version
- GNU bash, version 3.2.48(1)-release (i486-pc-linux-gnu)
- Copyright (C) 2007 Free Software Foundation, Inc.
复制代码- #!/bin/bash
- get_name_version_revision()
- {
- fname=${1##*/}
- fname=${fname%.umk}
- nandv=${fname%-*}
- vorre=${fname#$nandv}
- if [ "$vorre" == "${vorre#-r}" ]
- then
- version=${vorre#-}
- revision=0
- name=$nandv
- else
- revision=${vorre#-r}
- version=${nandv##*-}
- name=${nandv%-*}
- fi
- echo $name $version $revision
- }
- compare_version()
- {
- v1=$1.
- v2=$2.
- while true
- do
- a=${v1%%.*}
- b=${v2%%.*}
- [ -z "$a" ] && [ -z "$b" ] && return 0
- [ "$a"0 -gt "$b"0 ] && return 1
- [ "$a"0 -lt "$b"0 ] && return 2
- v1="${v1#*.}"
- v2="${v2#*.}"
- done
- }
- compare_atom()
- {
- read n1 v1 r1 < <(get_name_version_revision $1)
- read n2 v2 r2 < <(get_name_version_revision $2)
- [ $n1 != $n2 ] && { echo atom different! >&2; return 101; }
- compare_version $v1 $v2 && compare_version $r1 $r2
- # return $?
- }
- compare_atom $1 $2
复制代码 |
|