计算数组中的数字

时间:2014-11-26 21:54:58

标签: arrays shell unix sh

我一直在处理我的脚本文件,它应该总结一个数字列表,然后从数组中计算任何大于100的数字。当我执行脚本时,我的计数是空白的,因为它只计算数组中的最后一个数字,即17且小于100.我通过大于2来测试它,当我运行它时,它显示最后一个数字(17)只。我很擅长在shell中创建if / then语句,所以如果有什么看起来不合适或者我错过了什么请告诉我。谢谢。

以下是我的代码:

#!/bin/sh
sum=0
array=(12 43 16 55 243 312 17)
for i in ${array[@]}; do
    echo $i;
    let sum+=$i
done
echo Total = $sum
if [ $i -gt 2 ];  then
    echo $i
fi

2 个答案:

答案 0 :(得分:2)

您正在使用i循环之外的变量forif子句应位于for循环内。

count=0
for i in ${array[@]}; do
  if [ $i -gt 100 ]; then
    let count++
  fi
done

答案 1 :(得分:0)

进行检查并在循环中继续计数。

#!/bin/sh
sum=0
array=(12 43 16 55 243 312 17)
for i in "${array[@]}"; do
    echo "$i";
    let sum+="$i"
    if [ $i -gt 2 ];  then
        echo "$i is greater than 2"
    fi
done
echo "Total = $sum"