我希望函数“printReps”为每个数字打印“错误”1次 它不止一次收到,但它只打印一个空行。 这是代码 谁能告诉我我的错在哪里,谢谢。
function printReps {
echo $* | { read -a idNumbs
i=0
while (( $i < ${#idNums[*]} )); do
error=0
if (( ${idNums[i]} < 1 )); then
let i++
continue
fi
j=i+1
while (( $j < ${#idNums[*]} )); do
if (( idNums[i] == idNums[j] )); then
idNums[j]=0
error=1
fi
let j++
done
if (( $error == 1 )); then
echo error
fi
let i++
done
}
}
echo `printReps 1 1 23 4 78 23 1 4 9`
所有合法数字都大于0。
答案 0 :(得分:1)
printReps () {
local seen
for arg; do
if [[ ${seen[$arg]} ]]; then
echo error $arg
fi
seen[$arg]=yes
done
}
printReps 1 1 23 4 78 23 1 4 9
error 1
error 23
error 1
error 4