我正在使用bash创建程序:
然后,用户可以选择按字母顺序按名称排序,或按数字按销售数字排序。
我需要一种方法来确保排序后每个阵列上的名称和相应的季度销售数字都在同一个索引中(因为我知道BASH不支持多维数组)
这是我用于将数据存储在数组中的代码:
function getData()
{
read -p "Number of sales people: " spAmount
for (( i=0; i<$spAmount; i++ ))
do
read -p "Please enter a sales persons name:" salesPeople[i]
read -p "Please enter their quarterly sales: " quarterlySales[i]
done
}
这是用于排序数组的代码(使用冒泡排序方法):
function sortData()
{
for (( q = 0; q < $spAmount ; q++ ))
do
for (( p = $q; p < $spAmount; p++ ))
do
if [[ ${salesPeople[q]} > ${salesPeople[$p]} ]]
then
r=${salesPeople[q]}
salesPeople[$q]=${salesPeople[$p]}
salesPeople[$p]=$r
fi
done
done
for (( i = 0; i < $spAmount ; i++ ))
do
for (( j = $i; j < $spAmount; j++ ))
do
if [ ${quarterlySales[i]} -gt ${quarterlySales[$j]} ]
then
k=${quarterlySales[i]}
quarterlySales[$i]=${quarterlySales[$j]}
quarterlySales[$j]=$k
fi
done
done
}
我想我可以将两个输入组合成一个字符串,例如&#34; foo#bar&#34;并使用字符串命令或正则表达式来获取标签之前或之后的变量?不确定这是如何工作的。
提前致谢。