Пузырьковая сортировка Bash не сортируется

#bash #bubble-sort

#bash #пузырьковая сортировка

Вопрос:

Мой код пузырьковой сортировки в скрипте bash не меняет местами и не сортирует. Помогите мне понять, что я делаю неправильно.

 echo "Enter numbers  between 4 and 12"
read n
#declare -a numArray  #declare array of numbers
if [ $n -le 12 -a $n -ge 4 ]
then
        #take input from user
        echo "Enter numbers of array"
        for (( i = 0; i < $n; i   ))
        do
                read numArray[$i]

        done

        #sorting logic
        for (( i = 0; i < $n; i   ))
        do
                for (( j = 0; j < $n-1; j   ))
                do
                        # swapping logic
                        #read numArray[$j]

                        if [[ ${numArray[j]} -gt ${numArray[$((j 1))]} ]]
                        then
                                #echo "in swapping code"
                                temp=${numArray[j]}
                                echo $temp
                                numArray[$j]=${numArray[$((j 1))]}
                                numArray[$((j 1))]=$temp
                        fi
                done
        done
        # print sorted data 
        echo -e "nSorted Numbers "
    echo "${numArray[*]}"
else
echo "Please enter only values between 4 and 12"
fi
 

Результат:

 Enter numbers  between 4 and 12
5
Enter numbers of array
51428

51428
51428
51428
51428

Sorted Numbers 
 51428
 

Комментарии:

1. Я предлагаю вам использовать bash -x scriptname . Это поможет в отладке

2. зачем вводить 5 из одного и того же числа 51428 ? или вы имели в виду ввести 5 (<return>) 1 (<return>) 4 (<return>) 2 (<return>) 8 (<return>)

3. Похоже, вы только что ввели одно 5-значное число, а не 5 чисел. Вам нужно ввести каждое число в отдельной строке.