Você pode remover a repetitividade usando um loop for
. Consulte o link
Aqui está o que eu criei:
#!/bin/bash
read -p "Input the range you want to practice. For example: 1-12, 4-9, 9-11: " range
QUESTIONS=0
CORRECT=0
for i in {1..5}; do
let QUESTIONS++
n1=$(shuf -i $range -n 1)
n2=$(shuf -i $range -n 1)
realans=$((n1 * n2))
read -p "${n1} x ${n2}? " ans
if [[ $ans -eq $realans ]]; then
let CORRECT++
echo "Correct! ${n1} x ${n2} is ${realans}."
else
echo "Incorrect. ${n1} x ${n2} is ${realans}."
fi
done
echo "You got ${CORRECT} out of ${QUESTIONS} questions correct!"
Eu simplifiquei o programa e optei por read
em vez de zentity
para simplificar e manter a entrada e a saída no terminal. Eu também demonstrei o uso de let var++
, que é uma maneira mais limpa e moderna de incrementar um contador.