我一直在处理我的脚本文件,它应该总结一个数字列表,然后从数组中计算任何大于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
答案 0 :(得分:2)
您正在使用i
循环之外的变量for
。 if
子句应位于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"