如何检查 shell 脚本中 IP 地址的有效性,即在 0.0.0.0
到 255.255.255.255
范围内?
原文由 AlwaysALearner 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何检查 shell 脚本中 IP 地址的有效性,即在 0.0.0.0
到 255.255.255.255
范围内?
原文由 AlwaysALearner 发布,翻译遵循 CC BY-SA 4.0 许可协议
7 回答5.4k 阅读
4 回答4.1k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答853 阅读✓ 已解决
2 回答3.3k 阅读
1 回答1.1k 阅读✓ 已解决
如果您使用的是 bash,则可以对模式进行简单的正则表达式匹配,而无需验证四边形:
如果您坚持使用 POSIX shell,那么您可以使用
expr
做基本相同的事情,使用 BRE 而不是 ERE:请注意,
expr
假定您的正则表达式锚定在字符串的左侧,因此初始^
是不必要的。如果验证每个四边形是否小于 256 很重要,您显然需要更多代码:
或者甚至可能使用更少的管道:
或者,如果您的 shell 是 bash,如果您不喜欢算术,则可以使用繁琐的正则表达式进行四边形验证:
这也可以用 BRE 表示,但这比我的手指打字要多。
最后,如果你喜欢把这个功能……放在一个函数中:
有很多方法可以做到这一点。我给你看了几个。