来自 | 李振良的技术博客

链接 | http://t.cn/RQEqmBE

从运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。

思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式

方法1:

#!/bin/bash   # blog: http://lizhenliang.blog.51cto.com   function check_ip() {   IP=$1   VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')   if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then   if [ ${VALID_CHECK:-no} == "yes" ]; then   echo "IP $IP available."   else   echo "IP $IP not available!"   fi   else   echo "IP format error!"   fi   }
# Example   check_ip 192.168.1.1   check_ip 256.1.1.1

方法2:

#!/bin/bash   # blog: http://lizhenliang.blog.51cto.com   function check_ip() {   IP=$1   if [[ $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then   FIELD1=$(echo $IP|cut -d. -f1)   FIELD2=$(echo $IP|cut -d. -f2)   FIELD3=$(echo $IP|cut -d. -f3)   FIELD4=$(echo $IP|cut -d. -f4)   if [ $FIELD1 -le 255 -a $FIELD2 -le 255 -a $FIELD3 -le 255 -a $FIELD4 -le 255 ]; then   echo "IP $IP available."   else   echo "IP $IP not available!"   fi   else   echo "IP format error!"   fi   }
# Example   check_ip 192.168.1.1   check_ip 256.1.1.1

加个循环,如果错误则重新输入,直到正确:

#!/bin/bash   # blog: http://lizhenliang.blog.51cto.com   function check_ip() {   local IP=$1   VALID_CHECK=$(echo $IP|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')   if echo $IP|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then   if [ $VALID_CHECK == "yes" ]; then   echo "IP $IP  available!"   return 0   else   echo "IP $IP not available!"   return 1   fi   else   echo "IP format error!"   return 1   fi   }
while true; do   read -p "Please enter IP: " IP   check_ip $IP   [ $? -eq 0 ] && break   done

教你如何用 Linux Shell脚本判断IP是否合法(多种方法)相关推荐

  1. linux怎么判断网络是否正常运行,Linux shell脚本判断服务器网络是否可以上网

    微信公众号:「小林coding」 用简洁的方式,分享编程小知识. Linux shell脚本判断网络畅通 介绍 在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需 ...

  2. linux shell脚本判断文件行数,判断文件是否存在的shell脚本代码

    实现代码一. #!/bin/sh # 判断文件是否存在 # lilSzqFnk:www.jb51.net # date:2013/2/28 myPath="/var/log/httpd/&q ...

  3. Linux shell脚本判断服务器网络是否可以上网

    在编写shell脚本时,有的功能需要确保服务器网络是可以上网才可以往下执行,那么此时就需要有个函数来判断服务器网络状态. 我们可以通过curl来访问 www.baidu.com,从而判断服务器网络状态 ...

  4. Shell脚本判断IP是否合法性(多种方法)

    运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP.邮件地址等.那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考. 思路:IP由四位数字组成,以点分割,每 ...

  5. Linux Shell脚本Ldd命令原理及使用方法

    1.首先ldd不是一个可执行程序,而只是一个shell脚本 2.ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量 如下:LD_TRACE_LOADED_OBJECTS. ...

  6. linux命令取ip,linux下命令取IP地址的多种方法

    经常会遇到在命令行取ip地址,或写脚本引用ip地址,需要使用命令取出来:下面的方法根据实际情况调整 下面的命令环境为centos6.6系统:[root@localhost ~]# ifconfig e ...

  7. linux shell脚本判断文件或文件夹是否存在循环操作

    我最近写的脚本 你改改就能用 3.sh中全是 /data/test 这样的指向目录的数据 #!/bin/bash #set -x#循环读取文件目录 for line in `cat /root/shi ...

  8. linux shell脚本 判断,Shell脚本中的逻辑判断

    -gt 表示大于 -lt 表示小于 -ge 表示大于等于 -le 表示小于等于 -eq 表示等于 -ne 表示不等于 语法: 格式1:if 条件 ; then 语句; fi #如果满足条件,然后怎么样 ...

  9. linux shell脚本 检查IP地址格式

    网上好多检查IP地址格式的脚本,大都看起来让人晕乎乎的.. 这里贴一个我自己写的比较简单易懂的脚本,根据自己的需要稍加改动应该就可以用了~~~ #!/bin/sh ip_string="1. ...

  10. Linux Shell脚本入门教程系列之(九)Shell判断 if else 用法

    本文是Linux Shell脚本系列教程的第(九)篇,更多shell教程请看:Linux Shell脚本系列教程 判断语句是每个语言都必不可少的关键语法,Shell命令当然也不例外.继上一篇之后,今天 ...

最新文章

  1. 苹果谷歌脸书大佬前往游说!欧盟将首次对AI进行监管
  2. Java 全能手册火了!Redis/Nginx/Dubbo/Spring 全家桶/啥都有
  3. UICollectionView 具体解说学习
  4. Angular_PWA使用+Demo
  5. java platform se binary怎么关闭_如何吐槽舌尖上的折磨?diss难吃只会说malo,那还怎么battle?...
  6. rabbitmq充分利mysql_牛逼哄哄的 RabbitMQ 到底有啥用?
  7. 微信自动抢红包软件被判赔 475 万;日本科学家打破网速全球纪录;JavaScript蝉联最受欢迎编程语言|极客头条...
  8. Lightroom 教程,如何将照片从 Lightroom 移至Photoshop,在 Ps 中合并图像?
  9. 转:So Easy!让开发人员更轻松的工具和资源
  10. PHP has encountered an Access Violation at
  11. 逻辑回归:详细建模流程与例子代码
  12. 深度学习 | 《深度学习》“花书”知识点笔记
  13. 爱玩软件 | win10桌面美化
  14. html表格 超链接无效,excel表格超链接失效怎么处理
  15. 综合布线(楼栋)设计报告
  16. 053试题 - 320/321/322/323/324/326/330/332/544/553/585/586/587/588/589/592/596/597/598/599 rman backup
  17. 快速分析京东物流详情,并导出EXCEL表格
  18. GEEer成长日记十二:Modis_LST地表温度产品时间序列分析
  19. 如何让二维码变得好看
  20. Web测试如何让IT门外汉更好的入门篇

热门文章

  1. POI 读取 Excel 文件(2003版本与2007版本的差异之处)
  2. Exchange企业实战技巧(17)让密件抄送给特定用户
  3. XMind思维导图文件损坏,无法打开怎么办?
  4. 苹果mac视频剪辑软件:Final Cut Pro
  5. 在桌面养只捣蛋鹅,让 Desktop Goose 陪你一起用Mac
  6. 如何使用macOS自带网络测速功能?
  7. inDesign教程,如何将内容与参考线对齐?
  8. iOS 14.7 中的所有新功能
  9. Cisdem DVD Burner for Mac(DVD光盘刻录软件)
  10. C++中“强制转换”的四大天王