【发布时间】:2019-05-30 12:45:45
【问题描述】:
我正在尝试从子网掩码中获取前缀,代码如下:
mask=255.255.254.0
oct1=$(echo $mask | awk -F. '{print $1}')
oct2=$(echo $mask | awk -F. '{print $2}')
oct3=$(echo $mask | awk -F. '{print $3}')
oct4=$(echo $mask | awk -F. '{print $4}')
for i in {1..4}; do
for j in {7..0}; do
bits=$((oct$i & ((1 << $j)) ? 1 : 0))
((prefix += $bits))
done
done
echo $prefix
这确实有效,但我不知道变量位的值意味着什么。
【问题讨论】:
-
IFS=. read oct1 oct2 oct3 oct4 <<< "$mask"