Проверьте, что переменная является числом в оболочке UNIX

22
задан random 18 July 2011 в 00:37
поделиться

3 ответа

if echo $var | egrep -q '^[0-9]+; then
    # $var is a number
else
    # $var is not a number
fi
22
ответ дан Adam Rosenfield 29 November 2019 в 03:50
поделиться

Переменные Shell не имеют никакого типа, таким образом, самый простой путь состоит в том, чтобы использовать команду типа test возврата:

if [ $var -eq $var 2> /dev/null ]; then ...

(Или иначе синтаксический анализ это с regexp)

17
ответ дан Piotr Lesnicki 29 November 2019 в 03:50
поделиться

Или в ksh93 или в ударе с extglob включенной опцией:

if [[ $var == +([0-9]) ]]; then ...
3
ответ дан Jens 29 November 2019 в 03:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: