gpt4 book ai didi

arrays - Bash比较数组值以找到最大值

转载 作者:行者123 更新时间:2023-11-29 09:40:35 24 4
gpt4 key购买 nike

我试图在 bash 中找到整数数组中的最大值。我对 bash 很陌生。这是我到目前为止所拥有的...

    max="${array[0]}"
for ((i=0;i<${#array[@]};i++))
do
if [ ${array[$i]} > $max ]
then
max="${array[$i]}"

fi
done

其中数组大约有 500 个正整数 ex。 24 27 13 34 2 104 645 411 1042 38 5 24 120 236 2 33 6。目前它总是返回我数组中的最后一个整数。似乎这应该是一个简单的修复,但我不确定我遗漏了什么。感谢您的帮助。

最佳答案

此测试 [ ${array[$i]} > $max ] 正在执行词法比较,因此 99 大于 100

你想要其中之一:

[[ ${array[$i]} -gt $max ]]   # numeric comparison operator
(( ${array[$i]} > $max )) # arithmetic evaluation

或者,使用标准工具可能会更快,尽管必须产生几个额外的进程:

max=$( printf "%d\n" "${array[@]}" | sort -n | tail -1 )

关于arrays - Bash比较数组值以找到最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22120189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com