#!/bin/bash
# 定义关联数组
declare -A fruits=(
["apple"]=2.5
["banana"]=1.8
["cherry"]=3.2
)
# 自定义排序函数,根据价格从高到低排序
sort_by_price() {
local -n arr=$1
local keys=(${!arr[@]})
local values=("${arr[@]}")
for ((i = 0; i < ${#keys[@]} - 1; i++)); do
for ((j = i + 1; j < ${#keys[@]}; j++)); do
if (( $(echo "${values[i]} < ${values[j]}" | bc -l) )); then
# 交换键
temp_key="${keys[i]}"
keys[i]="${keys[j]}"
keys[j]="$temp_key"
# 交换值
temp_value="${values[i]}"
values[i]="${values[j]}"
values[j]="$temp_value"
fi
done
done
for ((i = 0; i < ${#keys[@]}; i++)); do
echo "${keys[i]}: ${values[i]}"
done
}
# 调用排序函数
sort_by_price fruits