尝试按字母顺序冒泡时预期的整数表达式

时间:2018-03-30 16:40:04

标签: bash bubble-sort

我的程序做的是允许用户输入输入名称的次数,然后将所有名称推送到数组

将名称添加到数组后,它们应按字母顺序排序,然后退出。

名称成功显示在数组中但我收到错误。在这种情况下,我试着放入" 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

0 个答案:

没有答案