天天看点

shell 找出数组元素中的最大值

shell 如何比较出数组中所有元素中的最大值?如:

array=(111 222 333 444 555 999 888 777 666)怎么找出最大的那个元素999呢?

思路:先设置一个值MAX=${array[0]}即数组的第一个元素,再使用for循环,拿第一个元素与第二个.....比较,当有一个元素比如3号元素比array[0]大时,就把3号元素的值赋值给MAX,最后输出MAX即可!

<a href="http://s1.51cto.com/wyfs02/M01/87/51/wKioL1fdJi3D1-eeAABQh5MHT8Q367.png" target="_blank"></a>

                文本如下

#!/bin/bash

#Author:wangergui       Email:[email protected]          Date:2016-09-17

#Release 1.0

#Function find maxnum from array

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin

export PATH

declare -a array

array=(111 222 333 444 555 999 888 777 666)

MAX=${array[0]}

for I in ${!array[@]};do

        if [[ ${MAX} -le ${array[${I}]} ]];then

            MAX=${array[${I}]}

        fi

done

echo ${MAX}

本文转自 wangergui 51CTO博客,原文链接:http://blog.51cto.com/wangergui/1853416,如需转载请自行联系原作者