Доброго времени суток.
Написал простейший скрипт с использованием expect, для работы с коммутатором d-link. Проблема возникла при написании анализатора строки.
Всего на коммутаторе 26 портов.
Скрипт должен взять порты из одной переменной.
Затем из второй.
В результате должен записать в 3 переменную порты не входящие в 1 и 2 переменную, причем порт может находиться лишь в одной переменной.
Необходимо также учесть синтаксис коммутатора:
Через тире обозначается диапазон портов идущих по порядку. К примеру 1-26, это все порты.
Через пробел перечисляются любые порты. Например 5,21,26
Возможна смешанная запись. Например 1,7-13,15-16,20,26
Вот пример того как должен отработать анализатор:
set var1 3,9,22,25-26
set var2 23-24
script (берет переменные var1 var2)
script (анализирует данные)
script (присваивает переменной var3 значение)
puts var3 # должен вывести 1-2,4-8,10-21
Опыта программирования практически не имею, надеюсь задачу описал ясно.
Заранее благодарю всех откликнувшихся.