如何在 while 循环每 52 次迭代中减少变量一次?

如何在 while 循环每 52 次迭代中减少变量一次?
#!/bin/bash
h=0
l=0
while read user_input;
do
    [ "$user_input" -eq 1 ] && ((h++))
    [ "$user_input" -eq 2 ] && ((l--))

    echo "         $(($((h+l))/6))"
done

我需要除以六的部分在读取 52 个用户输入后减少到 5,在读取 52 个用户输入后减少到 4,等等。如何?

答案1

#!/bin/bash
h=0
l=0
reads=0
divider=6
while read user_input;
do
    ((reads++))
    [ "$user_input" -eq 1 ] && ((h++))
    [ "$user_input" -eq 2 ] && ((l--))
    if [ "$((reads%52))" -eq 0 -a "$divider" -gt 1 ]; then
        ((divider--))
    fi
    echo "         $(($((h+l))/divider))"
done

相关内容