首页 > 解决方案 > var 必须包含一个 IP 地址,否则,停止,错误 var 必须是一个 IP 地址,没有别的

问题描述

我想检查 Bash 变量,如果它包含 IP 地址,否则脚本应该退出并显示错误消息。例如: var "10.01.24.10" 应该通过,var "hello" 不通过,但是 var "hello, my ip is 10.03.24.44" 也不应该通过。我的想法是使用 grep,但此时我不知道如何构建 grep 命令。有任何想法吗?

标签: bashvariablesscriptinggrepip

解决方案


您可以将 grep 命令合并到 if 语句中,如下所示

ip="192.168.240.2" 


if grep -Eq '^([0-9]{1,3}\.){3}([0-9]{1,3})' <<< "$ip"
then 
  echo "PASS"
else 
  echo "FAIL"
fi

您还可以将条件语句编写为:

grep -Eq '^([0-9]{1,3}\.){3}([0-9]{1,3})' <<< "$ip" && echo "PASS" || echo "FAIL" 

这使用 && 表示成功和 || 表示失败


推荐阅读