>_ IzzyLab

Практическое задание

Валидация MAC-адреса

средне

Напиши /usr/local/bin/ismac: если аргумент — валидный MAC-адрес (XX:XX:XX:XX:XX:XX, hex) — выход 0, иначе 1.

Что потренируешь:
  • bash
  • регулярные выражения
  • оператор =~
  • группировка
  • коды возврата

Разбор темы

Валидация формата в bash делается встроенным оператором =~ внутри [[ ... ]] — это extended regex без внешних утилит. Ключевая идея — собрать шаблон из повторяющегося блока: MAC-адрес это пять раз «пара hex-цифр и двоеточие» плюс финальная пара без двоеточия. Повтор описывают, обернув блок в круглые скобки и применив квантификатор-счётчик уже ко всей группе. Обязательны якоря ^ и $, иначе проверка пройдёт для строки, где валидный кусок — лишь часть длинной строки. Скрипт возвращает код самого сравнения; не забыть shebang и бит исполняемости.

Что проверяется

  1. Скрипт исполняемый
  2. Валидный MAC принят
  3. Кривой MAC отклонён

Как это выглядит