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

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

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

wKioL1fdJi3D1-eeAABQh5MHT8Q367.png

                文本如下

#!/bin/bash

#Author:wangergui       Email:291131893@qq.com          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}