Я пытаюсь получить префикс из маски подсети, код выглядит следующим образом:
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
Это на самом деле работает, но я не знаю, что означает значение битов переменной илиделает.