采用 字符串的模式匹配 和 正则表达式 来实现该功能,代码如下
#!/bin/bash
re="^([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}$"
if [[ $* =~ ${re} ]]; then
echo -e " [ OK ]: '$*' is a valid mac"
else
echo -e " [ ERROR ]: '$*' is a invalid mac"
fi
使用:
$ ./verify_mac.sh 1:2:3:4:5:6
OK: '1:2:3:4:5:6' is a valid mac
$
$
$ ./verify_mac.sh ef:1E:56:C3:23:01
OK: 'ef:1E:56:C3:23:01' is a valid mac
$
$
$ ./verify_mac.sh 1:2:3:4:5
ERROR: '1:2:3:4:5' is a invalid mac
$
$
$ ./verify_mac.sh 1:2:3:4:5:g
ERROR: '1:2:3:4:5:g' is a invalid mac
$
$
将检查MAC的内容封装一个小函数,并调用的示例
#!/bin/bash
function check_mac_address()
{
re="^([[:xdigit:]]{1,2}:){5}[[:xdigit:]]{1,2}$"
if [[ $* =~ ${re} ]]; then
return 0
else
return 1
fi
}
read -p "请输入需要检查的MAC地址: " mac_address
check_mac_address ${mac_address}
if [ $? != 0 ]; then
echo -e " [ ERROR ] '${mac_address}' is a invalid mac"
else
echo -e " [ OK ] '${mac_address}' is a valid mac"
fi