Значит суть такова. Я забираю по SNMP таблицу мак-адресов в массив с именем "a". Командой source я забираю содержимой конфиг файла, в котором имеются маки, записанные следущим обраом:
mac[0]="000c.ce5d.16b0"
mac[1]="000e.838e.c407"
mac[2]="000f.f79c.17c0"
mac[3]="0012.7f55.6e61"
mac[4]="0015.c681.6930"
mac[5]="0019.06ab.d12d"
mac[6]="001c.f685.0201"
mac[7]="001f.cad5.57c0"далее я циклом ищу содержимое массива "mac" в массиве "a" :
counter=0;
## проверяем полученные маки с эталоном через массивы
for j in $(seq 0 $((${#a[@]} - 1)))
do
for i in $(seq 0 $((${#mac[@]} - 1)))
do
if [[ "${mac[$i]}" == "${a[$j]}" ]]
then
echo "${a$j]}"
fi
counter=$((counter+1));
done
done
В этом случае скрипт выводит список совпавших маков и все отлично(вот пример вывода:
000c.ce5d.16b0
000e.838e.c407
000f.f79c.17c0
0012.7f55.6e61
001c.f685.0201
001f.cad5.57c0), но блин, когда вместо == (равно) я пишу != (не равно), то я получаю вывод кошмарный, строчки поторяются по 12 раз и нужный информаци среди них нету, прошу помочь разобраться, сам никак не пойду где проблема ( Заранее всем огромное спасибо.