#!/usr/bin/env bash # 检查 IP 格式 (IPv4) check_ip() { local ip="$1" # 正则逻辑拆解: # 1. [1-9]?[0-9] : 匹配 0-9 和 10-99(利用回溯机制,且自动拒绝前导0,如 01) # 2. 1[0-9]{2} : 匹配 100-199 # 3. 2[0-4][0-9] : 匹配 200-249 # 4. 25[0-5] : 匹配 250-255 local octet="(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])" local regex="^(${octet}\.){3}${octet}$" # 直接利用 Bash 内置正则引擎的状态码 [[ "$ip" =~ $regex ]] || return 1 } check_ip "$1"