Posso usar ksh em vez de sh? Se assim for, você pode facilmente testar as respostas com algo como:
Código:
#!/bin/ksh
...possible code...
# Declare inputs as integers
integer n1=0 n2=0
...possible code...
# Take n1 input
until (( $n1 > 0 && $n1 < 21 )); do
print -n "Please enter a positive integer between 1 and 20: "; read n1
if (( $n1 < 0 || $n1 > 20 )); then
print "$n1 is out of range."
fi
done
# Take n2 input
until (( $n2 > 0 && $n2 < 21 )); do
print -n "Please enter another positive integer between 1 and 20: "; read n2
if (( $n2 < 0 || $n2 > 20 )); then
print "$n2 is out of range."
fi
done
Se você deseja exibir os resultados e fechar quando o usuário acerta Ctrl-C, você precisará armadilha que sinal. A sintaxe é
Código:
trap command signal1 signal2 ...
No seu caso, o sinal seria INT.