我的程序做的是允许用户输入输入名称的次数,然后将所有名称推送到数组
将名称添加到数组后,它们应按字母顺序排序,然后退出。
名称成功显示在数组中但我收到错误。在这种情况下,我试着放入" John"作为名称输入并获得整数表达式预期错误。
line 36: [: John: integer expression expected
据我所知,这些名称不是整数,但想要了解如何将其转换为按字母顺序排列。
感谢任何帮助,因为我不熟悉bubblesorting
sp=()
x=0
function code()
{
read -p "Number of times to run code: " smw
}
function name()
{
read -p "Enter Name: " sp[x]
echo "${sp[x]}"
let "x++"
}
function repeat()
{
for (( l=1; l<$smw; l++))
do
name
done
}
function show()
{
echo "Names in the array are:"
for (( x = 0; x <= $smw; x++ ))
do
echo ${sp[x]}
done
for (( x = 0; x < $smw ; x++ ))
do
for (( p = $x; p < $smw; p++ ))
do
if [ ${sp[x]} -gt ${sp[$p]} ]; then
r=${sp[x]}
sp[$x]=${sp[$p]}
sp[$p]=$r
fi
done
done
echo -e "\nSorted Names Alphabetically: "
for (( x=0; x < $smw; x++ ))
do
echo ${sp[x]}
done
}
code
repeat
name
show