子网掩码格式为255.255.255.0可以通过以下脚本计算掩码位数
#!/bin/sh #maskdigits.sh mask maskdigits () { a=$(echo "$1" | awk -F "." '{print $1" "$2" "$3" "$4}') for num in $a; do while [ $num != 0 ];do echo -n $(($num%2)) >> /tmp/num; num=$(($num/2)); done done echo $(grep -o "1" /tmp/num | wc -l) rm /tmp/num } maskdigits "255.255.255.0"
步骤
1,把掩码分成255 255 255 0 2,循环把1写入文件/tmp/num 3,最后读取文件一共有多少行就是有多少个1 子网掩码位数就是有多少个1