【发布时间】:2019-11-03 06:48:37
【问题描述】:
我在名为 oldMAC 的 var 中有一个有效的 mac 地址
我需要增加它,然后返回一个新的有效 MAC 地址。
在这个例子中,我递增 1,但它可以是任何值。
到目前为止,我得到了以下内容:
echo $oldMAC
mac=$(echo $oldMAC | tr '[:lower:]' '[:upper:]' | tr -d ':') # upper case and remove :
echo $mac
macdec=$( printf '%d\n' 0x$mac ) # convert to decimal
echo $macdec
macadd=$( expr $macdec + 1 ) # add 1
echo $macadd
machex=$( printf '%X\n' $macadd ) # convert to hex
echo $machex
这个输出:
00:12:34:ae:BC:EF (oldMAC)
001234AEBCEF (mac)
78193278191 (macdec)
78193278192 (madadd)
1234AEBCF0 (machex)
我遇到的问题是如何转换1234AEBCF0,使其返回为00:12:34:AE:BC:F0
任何人都可以建议如何做到这一点......或者有更好的方法吗?
谢谢
【问题讨论】:
-
我建议不要在为制造商保留的范围内创建自己的地址。
-
嗨。以上是一个示例,我将使用一个我被建议开放使用的范围。
-
去掉冒号
mac=${oldMAC//:},字符串大写:mac=${mac^^},