我有一个数组,其中填充了数字1到10的和值,在for循环中,我想检查数组是否重复,但这些值是例如000341,这是两个数字,所以我得到的错误消息是“参数太多”,我如何更改它?
代码:

        while [ $k -le 10 ]
        do
            #the line below is the problem i is the value of another
            #loop the list is in
            if [ ${sumList[i]} -e ${sumList[k]} ]
            then
                    if [$k != $i]
                    then
                            echo "collision k: $k mit i: $i"
                    fi
            fi
            k=$(($k+1))
    done

最佳答案

引用你的变量。使用=而不是-eq比较字符串而不是数字。
$i变量之前还需要k,在第二个[变量中需要]if周围的空格。

if [ "${sumList[$i]}" = "${sumList[$k]}" ] && [ $i -ne $k ]
then
    echo "Collision k: $k mit i: $i"
fi

09-06 02:42