Я написал программу для сортировки массива и печати элемента, в котором совпадают несортированный массив и отсортированный массив. Теоретически это должно работать, но это не так. Все элементы отсортированного массива почему-то объединяют все это и выводят элемент массива 1.
#!/bin/bash
arr=(6 2 15 90 9 1 4 30 1 3)
function sort(){
local array=($@) max=$(($# - 1))
while ((max > 0))
do
local i=0
while ((i < max)); do
if [ ${array[$i]} \> ${array[$((i + 1))]} ]
then
local t=${array[$i]}
array[$i]=${array[$((i + 1))]}
array[$((i + 1))]=$t
fi
((i++))
done
((max--))
done
echo ${array[@]}
}
arr_sort=($(sort ${arr[@]}))
for ((j=0; j<(( ${#arr[@]} -1 )); j++)); do
for ((k=0; k<(( ${#arr[@]} -1 )); k++)); do
if (( ${arr[j]:-0} == ${arr_sort[k]:-0} )); then
echo ${arr[j]}
break
fi
done