关闭

LINUX Shell:比较一组数的大小,输出最大者

标签: shelllinux
2385人阅读 评论(0) 收藏 举报
分类:

比较一组数的大小,输出最大者

CODE:
#!/bin/bash
#找出最大的数
#2006.5.13 created by hjack
#version 1
#history:

Usage(){
  echo "Usage:max x1 x2 x3 ..."
  exit 1
}

#=============================
#传统方法,逐个比较,大的就赋给max变量。
#-----------------------------
max1(){
  max=$1
  for i in $(echo $*)
  do
    if [ $max -lt $i ];then
      max=$i
    fi
  done
  echo "the max value is : $max"
}

#=============================
#方法同max1,使用了shift来对参数进行移动。
#-----------------------------
max2(){
  max=$1
  while [ $2 ]
  do
    if [ $max -lt $2 ];then
      max=$2
    fi
    shift
  done
  echo "the max value is : $max"
}

#=============================
#先对要比较的数进行sort排序,然后输出最后一行。
#有个问题是,怎样把结果保存在一个变量里,像上面两个例子一样。 谁知道就说说~
#-----------------------------
max3(){
  for i in $(echo $*)
  do
    echo $i
  done | sort -n | tail -1
}

#=============================
#利用awk进行处理。
#----------------------------
max4(){
  echo "$@" | awk 'BEGIN{x=$1;} {for(i=1;i<=NF;i++)if($i>x)x=$i;} END{print "the max value is:" x}'
}

main(){
  if [ $# -lt "1" ] ;then
    Usage "$@"
  fi
  
  max1 "$@"
  max2 "$@"
  max3 "$@"
  max4 "$@"
}

#----------------
main "$@"
方法应该还有很多的,呵呵。暂想到这几个。想到再加上。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:48221次
    • 积分:658
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:2篇
    • 译文:0篇
    • 评论:4条
    最新评论