arrays - 计算数组中的数字

标签 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

最佳答案

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

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

关于arrays - 计算数组中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27159570/

相关文章:

php - 防止程序执行其他程序

shell - 需要将一个字符串连接到 unix 中的每一行 ls 命令输出

json - 如何读取并解析json文件并将其添加到shell脚本变量中?

linux - bash 函数返回状态

shell - 如何在 mongodb 函数中执行 mongodb 查询?

java - 无法启动测试系统 'slim' : java. io.IOException : Cannot run program "java": error=2, 没有这样的文件或目录

arrays - 我的搜索算法(类似于冒泡排序)的最佳和最坏情况运行时间?

javascript - $(...)..map(...).reduce 不是函数

javascript - 如果字符串等于 ""空,则不要将值传递给组件

c - C 中的随机字符数组