Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1255916
  • 博文数量: 168
  • 博客积分: 3483
  • 博客等级: 中校
  • 技术积分: 1696
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-06 13:17
文章分类

全部博文(168)

文章存档

2015年(6)

2014年(9)

2013年(47)

2012年(11)

2011年(13)

2010年(18)

2009年(11)

2008年(42)

2007年(11)

分类: LINUX

2013-08-31 14:05:23


点击(此处)折叠或打开

  1. #!/bin/bash
  2. #author: jiyin@redhat.com

  3. usage() {
  4.         echo "usage: $0 < = | '>' | '<' | '>=' | '<=' > " >&2
  5.         echo " $0 < eq | gt | lt | ge | le > " >&2
  6.         echo " $0 < match > <'pattern'>" >&2
  7. }

  8. sortV() {
  9.         if echo | sort -V 2>/dev/null; then
  10.                 cat - | sort -V
  11.         else
  12.                 cat - | sed -r -e "s/-([0-9]+\.)/.\1/" -e "s/-([0-9]+\.)/-.\1/" |
  13.                         sort -t . -k1,1 -k2,2n -k3,3n -k4,4n -k5,5n -k6,6n |
  14.                         sed -r -e "s/\./-/" -e "s/-\./-/"
  15.         fi
  16. }
  17. vercmp() {
  18.         [ $# != 3 ] && {
  19.                 usage
  20.                 return 1
  21.         }
  22.         vl=$1
  23.         cmpType=$2
  24.         vr=$3
  25.         res=1

  26.         [ "$vl" = "$vr" ] && eq=1
  27.         vmax=$(echo -e "$vl\n$vr" | sortV | tail -n 1)

  28.         case "$cmpType" in
  29.         =|eq) [ "$eq" = 1 ] && res=0;;
  30.         \>|gt) [ "$eq" != 1 -a "$vl" = "$vmax" ] && res=0;;
  31.         \<|lt) [ "$eq" != 1 -a "$vr" = "$vmax" ] && res=0;;
  32.         \>=|lt) [ "$vl" = "$vmax" ] && res=0;;
  33.         \<=|lt) [ "$vr" = "$vmax" ] && res=0;;
  34.         *) echo "$vl" | egrep -q "$vr"; res=$?;;
  35.         esac

  36.         return $res
  37. }
  38. vercmp "$@"


阅读(933) | 评论(0) | 转发(0) |
0

上一篇:expendxxRun.c

下一篇:packRpm.sh

给主人留下些什么吧!~~