Программа суммирует два числа и проверяет пустая ли переменная но мне нужно исключить ввод букв тд и тп Если в переменную будет введено хоть одна буква, то нужно выводить ошибку и выходит со скриптаНаписать скрипт, который добавляет два числа, указанные в командной строке. Если параметров не 2 или параметры не числа - выдать соответствующую ошибку.
прошу помощи и совета
#!/bin/bash
echo -n "Enter first number: "
read n1
if [ -z "${n1// /}" ]
then
echo "You didn't enter number"
exit
fi
echo -n "Enter second number: "
read n2
if [ -z "${n2// /}" ]
then
echo "You didn't enter number"
exit
fi
sum=$(($n1 + $n2))
echo "The sum of two numbers="$sum
> Программа суммирует два числа и проверяет пустая ли переменная но мне нужно
> исключить ввод букв тд и тп[ -z `echo $var | tr -d "[:digit:]"` ] && echo "ok"
[ -z `echo $var | tr -d "[:digit:]"` ] && echo "ok"Ну есть же люди которые так кратенько все запишут , я это к чему в своё время искал такое же решение на С,
но простого не нашел, может Вы знаете ???
Да делал программу изучения таблицы умножения для дочери, программу то сделал , а вот проверку на ввод нет,
Может подскажете ?
> Да делал программу изучения таблицы умножения для дочери, программу то сделал ,
> а вот проверку на ввод нет,
> Может подскажете ?программа в момент вода не различает тип данных. для нее все что вы вводите- это символы.
поэтому в простом случае вы можете банально перебрать в цикле сравнение вводимого символа с 10-ю символами цифр. то есть с 0 1 2 3 4 5 6 7 8 9. если совпадение есть- то введена цифра. если нет- то введен какой-то иной символ.
> поэтому в простом случае вы можете банально перебрать в цикле сравнение вводимого
> символа с 10-ю символами цифр. то есть с 0 1 2
> 3 4 5 6 7 8 9. если совпадение есть- то
> введена цифра. если нет- то введен какой-то иной символ.Цикл-то там нафига?
if (c < '0' || c > '9') printf("'%c' - это не цифра. Change user and press any key.\n", c);