- Не могу разобратся с Bash скриптом, NuINu, 14:57 , 20-Дек-08 (1)
>Всем добрый день. >Есть скрипт, назовем его check.sh. Скрипт писан на Bash 3.2.25 >В скрипте есть перемененная, куда заносится IP адресс($1) >Как можно организовать проверку правильности ввода? Т.е. правильность ввода IPV4 адреса? >Крайний вариант - проверка каждого символа циклом =) Но это долго, и >я уверен, есть варианты проще. > > Буду благодарен за любой >совет. любитель баша? ну скорми тогда его grep #!/bin/sh #проверяет аргуемент является ли он ip адресом. ./check_ip "аргумент возможно ip адрес" #на самом деле проверяется только формат(значения не проверяются) можно прверить конечно и #значения :) #check ip : 'aww10.4.0.101w' #Valid IP 10.4.0.101 ip=$1 echo "check ip : '$ip'" ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}"` if ! [ ${ip}_ == _ ] ; then echo "Valid IP $ip" else echo "Bad IP $ip" fi
- Не могу разобратся с Bash скриптом, crestfallen, 15:29 , 20-Дек-08 (2)
- Не могу разобратся с Bash скриптом, Bober, 04:00 , 22-Дек-08 (3)
- Не могу разобратся с Bash скриптом, angra, 07:03 , 22-Дек-08 (4)
- Не могу разобратся с Bash скриптом, Pahanivo, 08:14 , 22-Дек-08 (5)
- Не могу разобратся с Bash скриптом, NuINu, 10:17 , 22-Дек-08 (6)
>>echo "check ip : '$ip'" >>ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}.[[:digit:]]\{1,3\}"` > >Ню-ню :) По вашему 444.555.666.777 - валидный адрес? данный регэксп проверяет только форму адреса, и не проверяет значения байт. на самом деле в регэкспе есть другая ошибка. неправильно проходил проверку адрес ./1.sh 1110.240.1011.254 check ip : '1110.240.1011.254' Valid IP 1110.240.101 исправляется просто: ip=`echo $ip | grep -o -e "[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}\.[[:digit:]]\{1,3\}"` но может быть вы предложите свое правильное решение? более полное
- продолжим бесполезные $) упражнения..., Andrey Mitrofanov, 11:05 , 22-Дек-08 (9)
- Не могу разобратся с Bash скриптом, sas, 02:09 , 23-Дек-08 (11)
|