用户可以通过以下方式在我的Bash脚本中编写一个mac地址:
read -p "enter mac-address " mac-address
现在,我想检查一个if语句,如果此mac地址与“特定”格式匹配。即它应该是FF:FF:FF:FF:FF:FF
,不应该FFFFFFFFFFFF
。长度也应该正确:6x2。
懒惰的方法只是运行
if [[ $mac_address == ??:??:??:??:??:?? ]]; then echo Heureka; fi
但这不会检查它是否为十六进制字符串。所以如果这很重要
if [[ $mac_address =~ ^[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]:[0-9a-fA-F][0-9a-fA-F]$ ]]; then echo Heureka; fi
可能会更好。后者可以缩短为
if [[ $mac_address =~ ^([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}$ ]]; then
echo Heureka;
fi
如果模式匹配,我也没有必要检查正确的长度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句