Официальный сайт студ.городка НГТУ
Программирование и БД » [bash] Массивы 

#1  18.02.09 15:53

[bash] Массивы

не могу закончить скрипт. нужно посчитать сколько с одного айпи открыто ESTAB коннектов

Код: bash:

#!/usr/local/bin/bash
 
IPLIST=( $(netstat -n | grep ESTAB | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq) )
 
for element in "${IPLIST[@]}"
  do
     IP=${element%*.*}; # отрезаем порт
     вот тут нужно либо создать массив NUM_IP_CON и инкрементом увеличить NUM_IP_CON[$IP]++
  done
 
а потом также прогнать NUM_IP_CON через цикл и посмотреть сколько у каждого $IP NUM_IP_CON[$IP] коннектов
 
exit 0;


пипец в баше как со скобачками намужено, без литра не разберёшься.

Offline

#2  18.02.09 23:42

Re: [bash] Массивы

for element in "${IPLIST[@]}" => for element in ${IPLIST[@]}

хотя... нет, наверное

Исправлено OCTAGRAM (18.02.09 23:42)

Offline

#3  18.02.09 23:59

Re: [bash] Массивы

Код: bash:

     вот тут нужно либо создать массив NUM_IP_CON и инкрементом увеличить NUM_IP_CON[$IP]++
 
черновой вариант:
 
NUM_IP_CON_IP="NUM_IP_CON_IP_$IP"
declare "$NUM_IP_CON_IP"="$(( ${!NUM_IP_CON_IP:-0} + 1 ))"

Offline

#4  19.02.09 00:07

Re: [bash] Массивы

Код: bash:

и вторая часть...
 
а потом также прогнать NUM_IP_CON через цикл и посмотреть сколько у каждого $IP NUM_IP_CON[$IP] коннектов
 
for NUM_IP_CON_IP in ${!NUM_IP_CON_IP_*}; do
  echo "NUM_IP_CON[${NUM_IP_CON_IP##NUM_IP_CON_IP_}] = ${!NUM_IP_CON_IP}"
done

Offline

#5  19.02.09 09:33

Re: [bash] Массивы

пизд?ц какойто

Offline

#6  19.02.09 09:45

Re: [bash] Массивы

В bash нет ассоциативных массивов, это zsh нужен

Offline

#7  19.02.09 10:07

Re: [bash] Массивы

или перл :)

Offline

#8  19.02.09 11:05

Re: [bash] Массивы

Да хоть Unicon.

У zsh преимущество в том, что это шелл. А Perl -- нет.

Offline

Программирование и БД » [bash] Массивы 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.453 сек.
Выполнено 14 запросов.