获取 "line 11: [: 9: unary operator expected"

Getting "line 11: [: 9: unary operator expected"

我在 Bash 中编写这个简单的冒泡排序代码时遇到了这个奇怪的错误。虽然我得到了正确的输出,但这个错误一直困扰着我。

输出

Enter the array elements: 9 4 1 2 3 0 4 5
Array elements: 
9  4  1  2  3  0  4  5  
bubble.bash: line 11: [: 9: unary operator expected
Sorted Array elements: 
0  1  2  3  4  4  5  9  

代码:

#!/bin/bash
read -p "Enter the array elements: " -a arr
echo "Array elements: "
for elem in ${arr[@]}
do 
    echo -ne "$elem  "
done
echo
for (( i = 0; i <= ${#arr[@]}-1; i++ )); do
    for (( j = 0; j <= ${#arr[@]}-$i-1; j++ )); do
        if [ ${arr[j]} -gt ${arr[j+1]} ]; then
            t=${arr[$j]}
            arr[$j]=${arr[$j+1]}
            arr[$j+1]=$t
        fi
    done 
done
echo "Sorted Array elements: "
for elem in ${arr[@]}
do 
    echo -ne "$elem  "
done
echo

换行 for (( i = 0; i <= ${#arr[@]}-1; i++ ));

致: for (( i = 0; i < ${#arr[@]}-1; i++ ));

for (( j = 0; j <= ${#arr[@]}-$i-1; j++ ))

致: for (( j = 0; j < ${#arr[@]}-$i-1; j++ ))