【发布时间】:2018-04-25 18:30:16
【问题描述】:
我需要在不使用 bash 中的速记排序的情况下对数组中的项目进行排序 从这样的数组开始
declare -A friends=(["Bob"]=22 ["Alice"]=19 ["Jane"]=21)
我必须使用键(名称)作为排序参数,按字母顺序打印数组中的项目。 预期输出
Alice 19
Bob 22
Jane 21
【问题讨论】:
-
您可以编写冒泡排序函数,但此时您将停止尝试使用
bash编写脚本并使用通用语言。跨度> -
到目前为止您尝试过什么?请付出一些努力,Stack Overflow 不是来做你的功课的。
-
#!/bin/bash declare -A friends=(["Bob"]=22 ["Alice"]=19 ["Jane"]=21) friendslen=${#friends[@]} function sortByName(){ for ((a=0; a<friendslen; a++)) ; do lowest=$a for ((b=a; b < friendslen; b++)) ; do if [ ${friends[b]} -le ${friends[$lowest]}] ; then lowest=$b fi done temp=${friends[a]} friends[a]=${friends[lowest]} friends[lowest]=$temp done for ((a=0; a < friendslen; a++)); do echo -e "${friends[$a]}" done echo "" } sortByName
标签: arrays bash bubble-sort