shell 判断字符串是不是IP
展开全部
#!/bin/bash
ip='123.123.123.1231'
#ip='123.123.123.131'
echo $ip | perl -ne 'exit 1 unless /\b(?:(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5]))\b/'
if [ $? -eq 1 ]
then
echo "Invalid Ip"
else
echo "Ip is $ip"
fi
ip='123.123.123.1231'
#ip='123.123.123.131'
echo $ip | perl -ne 'exit 1 unless /\b(?:(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5]))\b/'
if [ $? -eq 1 ]
then
echo "Invalid Ip"
else
echo "Ip is $ip"
fi
追问
这么复杂 ?要是没有perl 环境呢
追答
*unix 上都预装了perl, 这个你就不用担心了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string="你的字符串"
echo $string|egrep -q '([0-9]+.){3}[0-9]+' #这里并非严格意义上的判断
if [ $? -eq 0 ]; then
echo "$string is an IP address."
else
echo "$string is NOT an IP address."
fi
更严格的判断,参见下面这个链接。
echo $string|egrep -q '([0-9]+.){3}[0-9]+' #这里并非严格意义上的判断
if [ $? -eq 0 ]; then
echo "$string is an IP address."
else
echo "$string is NOT an IP address."
fi
更严格的判断,参见下面这个链接。
参考资料: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=267992
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过正则表达式进行判断:
#!/bin/bash
ip='111.111.111.111'
#ip='111.111.111.111'
echo $ip | perl -ne 'exit 1 unless /\b(?:(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5]))\b/'
if [ $? -eq 1 ]
then
echo "true"
else
echo "false"
fi
#!/bin/bash
ip='111.111.111.111'
#ip='111.111.111.111'
echo $ip | perl -ne 'exit 1 unless /\b(?:(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5]))\b/'
if [ $? -eq 1 ]
then
echo "true"
else
echo "false"
fi
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |