我正在编写一个执行子网计算的脚本。到目前为止,它看起来像这样(部分):
echo "Subnet Address : "$sn1.$sn2.$sn3.$sn4
echo "BCast Address : "$br1.$br2.$br3.$br4
echo -e "\nSubnet address in binary" :
echo "obase=2;$ip1"+"obase=2;$ip2"+"obase=2;$ip3"+"obase=2;$ip4" \
| bc | awk '{printf("%08d",$ip1)}'
echo -e "\nBroadcast address in binary" :
echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4" \
| bc | awk '{printf("%08d",$br1)}'
这给了我这个输出:
Subnet address in binary :
11000010101010100000001100000000
Broadcast address in binary :
11000010101010100000001100011111
- 我尝试将八位字节分开
'{printf("%08d.",$br1)}'
,'{printf(".%08d",$br1)}'
但在开头或结尾我得到了一个额外的点。 - 我想计算网络掩码有多少个 ace,但我真的找不到将输出
echo "obase=2;$br1"+"obase=2;$br2"+"obase=2;$br3"+"obase=2;$br4"| bc | awk
转换为字符串的方法,所以我可以计算它们。
有什么建议么?