принимать числа в диапазоне от 1 до 100 и отклонять любые буквенные символы?
Так что используйте утилиту для проверки ввода. Вы можете использовать регулярное выражение, чтобы проверить, состоит ли ввод только из цифр, и после этого проверить диапазон.
echo -n "Enter your guessing number: "
read -r guess
if ! [[ $guess=~ ^[0-9]+$ ]]; then
echo "Your guess is not a number, try again..."
continue;
fi
if (( guess < 1 )); then
echo "Your guess is lower then 1, try again..."
fi
if (( guess > 100 )); then
echo "Your guess is higher then 100, try again..."
continue
fi
# rest of your script
Вы можете использовать:
typeset -i guess
read -r guess
, но это преобразует любой вход в номер без проверки ошибок. Если вы введете blabla
, guess
будет просто 0
, без проверки ошибок.