自定义排序函数
# a是数组,fs是排序后的数组
# 包含core的排第一,base第二,so
custom_sort() {
case "$1" in
*core* ) echo "1_$1" ;;
*base* ) echo "2_$1" ;;
*so* ) echo "3_$1" ;;
* ) echo "4_$1" ;; # 其他情况,保留原顺序
esac
}
# 在字符串加上前缀
for element in "${a[@]}"; do
fs+=("$(custom_sort "$element")")
done
# 在字符串前缀排序
fs=($(printf "%s\n" "${fs[@]}" | sort ))
#删除前缀
fs=("${fs[@]#*_}")