Re[2]: [Comm] еще один вопрос по bash

Maksim Otstavnov =?iso-8859-1?q?maksim_=CE=C1_otstavnov=2Ecom?=
Чт Сен 30 17:27:59 MSD 2004


Hello Jury,

Thursday, September 30, 2004, 2:38:06 PM, you wrote:

JL> Да получается, что внутри цикла переменная локальная,

Во-первых, она не внутри цикла локальная, она локальная внутри
экземпляра оболочки, запускаемой круглыми скобками.

Во-вторых, Вам здесь скобки вообще не нужны, т.к. нечего группировать.

В-третьих, именно этого именно от bash Вы вряд ли добьетесь, т.к. он
скорее всего даже без круглых скобок породит еще одну оболочку.

В четвертых, почему бы Вам в данном конкретном случае не написать
просто что-то вроде:

summ=0
cut $LOG_PATH/jur-traffic.log -d" " -f5 | (
  while read var;
  do
     summ=`expr $summ + $var`;
     echo "---------------------- $summ";
  done
  echo "---------------------- $summ"
)

ИЛИ

summ=0
cut $LOG_PATH/jur-traffic.log -d" " -f5 | {
  while read var;
  do
     summ=`expr $summ + $var`;
     echo "---------------------- $summ";
  done
  echo "---------------------- $summ";
}


-- 
-- Maksim Otstavnov <maksim на otstavnov.com> http://www.otstavnov.com





Подробная информация о списке рассылки community