我需要创建一个脚本来计算Mac的地址。
问题是当我显示结果时,如果Mac地址以“ 0”开头,
示例:
对于08952A421DE8
显示8952A421DE8
我的printf是:
printf "NAME %s MACADDRESS \n" "${clientid[$i]}" "$((0x${mac[$i]}))"
感谢帮助
答案 0 :(得分:3)
您需要使bash意识到这是一个具有固定位数的十六进制数字。当前它只是一个任意字符串。
尝试一下:
printf "NAME %s MACADDRESS %012x\n" "${clientid[$i]}" "0x${mac[$i]}"
使用%012x
,您可以根据需要指定12个十六进制数字的格式,并以前导零表示。
printf
会自行解释0x
前缀,因此在这种情况下无需使用$((…))
。