如何计算条件下传递的参数数量?

如何计算条件下传递的参数数量?

我正在尝试创建一个 shell 脚本,以一系列平均值作为参数,并为每个注释分配一个观察结果,例如:

引入了 5 个平均值。
有 2 个注释是:相当好。
有 3 个注释:嗯
......

for i in $@
if [[ $# -ge 16 ]]; 
then 
    let j++
    echo " there are ${#j} notes that are : pretty good "
elif [[ $# -ge 14 ]]; 
    let k++
    echo " there are ${#k} notes that are : good "

答案1

先清点你的东西,然后单独报告结果:

#!/bin/bash

for a do
    if (( a >= 10 && a < 12 )); then
        pass=$(( pass + 1 ))
    elif (( etc. for the other conditions ))
    fi
done

printf '%d passed (%d%%)\n' "$pass" "$(( (100*pass)/$# ))"

无需测试,$#因为如果没有传递参数,循环(如果按上述方式编写)将根本不会执行。

相关内容