Bash 如何查找数组中的最大数?

Bash 如何查找数组中的最大数?,bash,Bash,可能重复: 我在数组中有数字103044444691211…。如何显示数组中的最高值 echo $NUM //result 69 试试这个: a=(10 30 44 44 69 12 11 100) max=0 for v in ${a[@]}; do if (( $v > $max )); then max=$v; fi; done echo $max 结果为100您可以使用排序查找 #! /bin/bash ar=(10 30 44 44 69 12 11) IFS=

可能重复:

我在数组中有数字
103044444691211…
。如何显示数组中的最高值

echo $NUM //result 69
试试这个:

a=(10 30 44 44 69 12 11 100)

max=0
for v in ${a[@]}; do
    if (( $v > $max )); then max=$v; fi; 
done
echo $max

结果为100

您可以使用
排序
查找

#! /bin/bash
ar=(10 30 44 44 69 12 11)
IFS=$'\n'
echo "${ar[*]}" | sort -nr | head -n1
或者,自己搜索最大值:

max=${ar[0]}
for n in "${ar[@]}" ; do
    ((n > max)) && max=$n
done
echo $max

到目前为止你试过什么?试着按照这个例子来做。非常感谢,如果有字符串而不是数字?ar=(“dsasd”“dsdas”“dasdsadaasdadadadadadadadadaddad”)@Charlie:然后可以使用字符串比较
[[[$n>$max]]
。此外,如果只有一个元素,您可以删除max.或ar[0]的初始化…@TNT:我不理解您的评论。我对数字使用了
((n>max))
,对字符串使用了建议的
[[[$n>$max]]]
。@choroba抱歉,没有仔细阅读。这里的问题与上面的答案相同——max=0有问题——如果所有参数都是负数怎么办。。这里有一个更好的解决方案--