请求编写带三段式IP格式校验的服务器信息添加Shell脚本
修正后的IP验证脚本
你的原脚本存在两个核心问题:
- 匹配规则过于宽松:
[0123456789.]*仅校验输入开头是否为数字或点,像10-10.10这类含非法字符的输入会被误判为合法 - 语法错误:case分支中
break的位置不符合bash语法,且多余的分号会导致逻辑异常
以下是符合需求的中文版本修正脚本,新增了精确的格式校验,同时修复了语法问题:
while true ; do read -p "请输入该位置使用的IP(格式为xx.xx.xx):" newip # 用正则匹配xx.xx.xx格式:三段数字,每段至少1位,用点分隔 if [[ $newip =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "验证成功" # 此处添加向服务器添加信息的逻辑,示例: # curl -X POST http://你的服务器地址/api/添加接口 -d "ip=$newip" break else echo "请输入符合xx.xx.xx格式的IP" fi done
测试效果
请输入该位置使用的IP(格式为xx.xx.xx):10.10.10 验证成功 请输入该位置使用的IP(格式为xx.xx.xx):10-10.10 请输入符合xx.xx.xx格式的IP 请输入该位置使用的IP(格式为xx.xx.xx):10.10.10 验证成功
内容的提问来源于stack exchange,提问作者Hajiko
相关产品推荐
相关产品推荐

