比较一组数的大小,输出最大者
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 "$@" 方法应该还有很多的,呵呵。暂想到这几个。想到再加上。