shell脚本判断MAC地址是否合法

1、检测MAC地址的函数

# MAC地址检查正确性,接收MAC地址,形式为:XX:XX:XX:XX:XX:XX
check_mac()
{
	# 正则表达式,校验MAC地址合法性:必须用:号隔开、每个字段2位十六进制、第一个字段必须为偶数(因为bit40为1表示组播地址)
	echo $1 |grep -Eq "^([0-9a-f][02468ace])(([:]([0-9a-f]{2})){5})$"
	if [ "$?" != "0" ]; then
		echo "wrong MAC address!"
		return 1
	fi
	
	return 0
}

2、grep命令的参数

参数含义
-E将范本样式延伸为普通表达式来使用
-q不显示任何信息
^匹配行首
$匹配行尾
.匹配任意单个字符
*匹配前一个字符0次或多次
+匹配前一个字符1次或多次
[ ]匹配括号里的任意一个字符
( )分组,用于匹配复杂的模式

3、正则表达式解析

echo $1 |grep -Eq "^([0-9a-f][02468ace])(([:]([0-9a-f]{2})){5})$"	#判断输入的MAC地址,是否符合特定格式

第一步:^和$:两个符号之间是要匹配的字符串格式;
第二步:([0-9a-f][02468ace]):表示第一个字符可以是数字0-9或者小写字母a-f,第二个字符可以是"02468ace"中的任意一个;
第三步:(:):第一个字符必须是冒号,第二和第三字符可以是数字0-9或者小写字母a-f;
第四步:{5}:把第三步的匹配重复5次;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在起飞的蜗牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值