查找由数字组成的关联数组的最大值/最小值

问题描述 投票:0回答:1

目标:查找由整数值组成的关联数组的最大/最大值。

  max_val=${RA[0]}
        for i in "${RA[@]}"
        do
                #let count=count+1
                #curr_val=$i
                (( $i > max_val )) && max_val=$i
        done

echo "CURR.MAX: $max_val" 

问题:运行前面提到的代码时,我没有得到有效的结果。我还注意到用于比较的max_val变量似乎没有任何价值。另外,我想获得数组的最小值,我想可以以类似的方式获得它。

arrays bash comparison associative-array
1个回答
0
投票
#!/bin/bash

declare -A RA
RA=([foo]="3" [foo2]="5" [bar]="199" [bar2]="12") # Example

# get first key from associative array
for i in "${!RA[@]}"; do firstkey="$i"; break; done

max_val="${RA[$firstkey]}"
min_val="${RA[$firstkey]}"

for i in "${RA[@]}"; do
  (( "$i" > "$max_val" )) && max_val="$i"
  (( "$i" < "$min_val" )) && min_val="$i"
done

echo "CURR.MAX: $max_val"
echo "CURR.MIN: $min_val"

输出:

最高电流:199最小电流:3
© www.soinside.com 2019 - 2024. All rights reserved.