LINUX.ORG.RU

Re: Как проверить, что переменная $2 - число?(Шелл)

expr $2 + любое число >dev/null 2>&1
echo $?

код 0 число
код 2 не число

hyde ()

Re: Как проверить, что переменная $2 - число?(Шелл)

Ещё можно

echo "$2" | grep -qE "^[[:digit:]]*$" && echo "число" || echo "не число"

unDEFER ★★★★ ()

Re: Как проверить, что переменная $2 - число?(Шелл)

лучще так

echo "$c" | grep -qE "^(-[[:digit:]]|[[:digit:]])+$" && echo "число" || echo "не число"

иначе отрицательные числа числами не будут, а пустые или неинициализированные переменные - будут

ananas ★★★★★ ()

Re: Как проверить, что переменная $2 - число?(Шелл)

Поздравляю вас, господин ananas, соврамши:

$ echo "-1-2-3" | grep -qE "^(-[[:digit:]]|[[:digit:]])+$" && echo "число" || echo "не число"
число

Странноватый результат, не правда ли?

Может так лучше:

echo "$c" | grep -qE "^[+-]?[[:digit:]]+$" && echo "число" || echo "не число"

Onanim ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.