var 必须包含一个 ip 地址,否则,停止,错误 var 必须是一个 ip 地址,没有别的

var must contains a ip-adress, otherwise, stop, with error the var must be an ip-adress and nothing else

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

您可以将 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" 

这里使用&&表示成功,||表示失败