我有一个数组,其中填充了数字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