我想要一个bash脚本来打印增量MAC地址的列表。这是我正在使用的while循环:
i=1
j=1
k=1
while [ $i -le 5 ]; do
j=1
while [ $j -le 46 ]; do
k=1
while [ $k -le 44 ]; do
echo "mac=00:00:01:$i:$j:$k"
k=`expr $k + 1`
done
j=`expr $j + 1`
done
i=`expr $i + 1`
done
我希望 MAC 以十六进制打印。所以我想要这个——
00:00:01:01:09:09
递增到此 -
00:00:01:01:09:0a
而不是这个 -
00:00:01:01:09:10
查看printf
内置的 bash 命令,echo
并使用
printf "mac=00:00:01:%2.2x:%2.2x:%2.2xn" $i $j $k
i=1
j=1
k=1
# using for loop instead of while loop
for i in $(seq 1 5); do
j=1
for j in $(seq 1 46); do
k=1
for k in $(seq 1 44); do
echo "mac=00:00:01:$i:$j:$k"
#using following command for HEX increment.
k=`echo "obase=ibase=16;${k}+1"`
done
j=`echo "obase=ibase=16;${j}+1"`
done
i=`echo "obase=ibase=16;${i}+1"`
done