Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

bash: работа с массивами

56K
09 января 2010 года
mightydok
1 / / 09.01.2010
Добрый день.

Есть маленькая задача - реализовать функционал исключений для скрипта написанного на bash.

Написал код, но мне кажется, что его можно переписать более оптимально, кто что может подсказать?

Код:
#!/bin/bash
#

# Задаем список исключений
exclude_slave=(172.16.0.64 172.16.0.65)

# Созданные массивы
slave_ids=(3 4 5)
slave_hosts=(172.16.0.63 172.16.0.64 172.16.0.65)
slave_ports=(3306 3306 3306)
ids4delete=()
   
# Прогоняем список исключений по массиву slave_hosts
for excl in ${exclude_slave[@]}
do
    for (( i = 0 ; i < ${#slave_hosts[@]} ; i++ ))
    do
        if [ "$excl" == "${slave_hosts[$i]}" ]; then
            echo "Found IP: $excl from exclude list, with ID: $i"
            # Наполняем массив с ID номерами для удаления информации из массивов
            ids4delete[${#ids4delete}]="$i"
            break
        fi
    done
done

# Удаляем данные из массивов
for ids in ${ids4delete[@]}
do
            unset slave_ids[$ids]
            unset slave_hosts[$ids]
            unset slave_ports[$ids]
            echo "Delete Slave server with ID: $ids"
done

unset ids4delete
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог