Статическая маршрутизация linux

на вход дали простое тз(не для меня), есть небольшое понимание как работает терминал, баш-скрипты, но преобразование данных пока совсем далеко, подскажите хотя бы с чего начать, линукс стоит пару дней всего

допустим на вход дается маска в формате 255.255.0.0, а мне нужно получить кол-во битов, так вот как, например мне набор октетов преобразовать в кол-во единичек

Спасибо введите сюда описание изображения


Ответы (1 шт):

Автор решения: eri

команда ip принимает маску в любом из этих форматов. преобразование не требуется.

но раз в задании сказано что нужно, то ответ можно найти в первой строчке поисковой выдачи по словам bash netmask convert

IPprefix_by_netmask() {
    #function returns prefix for given netmask in arg1
    
    if [ $1 -le 32 ]; then echo /$1 ; return; fi;

    bits=0
    for octet in $(echo $1| sed 's/\./ /g'); do 
         binbits=$(echo "obase=2; ibase=10; ${octet}"| bc | sed 's/0//g') 
         let bits+=${#binbits}
    done
    echo "/${bits}"
}
→ Ссылка