URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6898
[ Назад ]

Исходное сообщение
"Как передать переменную родит. процессу?"

Отправлено schizoid , 31-Окт-07 14:37 
Вроде везде написано что невозможно, но может подскажете как обойти.
Вобщем мне нужен массив интерфейсов с их айпи.
netstat -rn | grep 172.16 |while read line
       do
                ip=`echo $line| awk '{print $1}'`
                iface=`echo $line| awk '{print $6}'`
                numb=`echo ${ip:8:2}${ip:11}`
                ifaces[$numb]=$ip
               echo $numb ${ifaces[$numb]}
       done

Формируется и заполняется все просто сказка.
Но вот после DONE он стирается.
А мне его еще использовать же недо. Не только вывести.
А использовать потом надо в настройке фаервола.
Из мускула берем скорость для каждого айпи
и создаем правило для каждого интерфейса на основе его айпи..
Пробовал Експорт, пробовал декларе ДО вайла... НИче не помогло.
Подскажите люди добрые


Содержание

Сообщения в этом обсуждении
"Как передать переменную родит. процессу?"
Отправлено angra , 31-Окт-07 15:17 
Пора переходить на perl. Шелл конечно можно использовать для такой задачи, но попахивает мазохизмом.

"Как передать переменную родит. процессу?"
Отправлено Arifolth , 31-Окт-07 16:23 
>Пора переходить на perl. Шелл конечно можно использовать для такой задачи, но
>попахивает мазохизмом.

согласен, переходите на perl. там форк и через пайп качать предку
а тут можно положить в файл а потом прочитать.


"Как передать переменную родит. процессу?"
Отправлено jd , 01-Ноя-07 02:17 
Трудно понять, чего вы хотите: получить массив после цикла или получить его в другом скрипте... Но если первое и если вы используете bash (а судя по коду, именно его вы и используете), то (об этом тут уже много раз спрашивали) вам нужно поменять
some command | while read line; do
  ...
done

на
while read line; do
  ...
done < <(some command)

И, к слову:
- Для чего у вас переменная iface?
- Такой способ выделения частей адреса чреват, при переходе на другие адреса, получением странных трудновылавливаемых глюков. Лучше выделять подстроки не по фиксированным смещеням, а по полям, разделённым точками.