Проверить действительный номер в busybox? - PullRequest
1 голос
/ 02 января 2012

Я пытаюсь создать скрипт, в котором мне нужно проверить правильность ввода пользователя. Я просто не могу понять это. Пробовал разные способы, но не может найти решение. Так что, если там есть гуру занятого пепла, я рад за любую помощь.

if ! [[ $ANS =~ ^[0-9][.0-9]*$ ]]; then
    echo "abort"
else
    echo "go on"
fi

Я хочу посмотреть, введет ли пользователь число. Число с десятичной дробью также допускается. Если нет, то следует прервать.

То же самое с ..

if ! [[ $ANS =~ ^[0-9A-Fa-f]{6}$ ]] ; then
    echo "abort"
else
    echo "go on"
fi

Где мне это нужно, чтобы увидеть, используется ли шестнадцатеричное. Все, что я получаю, это «неизвестный операнд».

1 Ответ

1 голос
/ 02 января 2012

Это похоже на взлом, но вы можете использовать egrep для этого:

$ ANS=10.2
$ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure
success
$ ANS=10.2.2
$ echo -n $ANS | egrep -q '^[0-9]*[.]?[0-9]*$' && echo success || echo failure
failure
...