同时循环 bash 脚本以回显十六进制数字



我想要一个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

相关内容

  • 没有找到相关文章

最新更新