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

Vladimir Lettiev =?iso-8859-1?q?crux_=CE=C1_syktsu=2Eru?=
Чт Сен 30 15:43:06 MSD 2004


Jury Levykin wrote:
> Следующий код увеличивает значение summ,
> но после выхода из цикла там опять ноль ??
> 
> Как с этим бороться?
> export summ -- не помогает.
> 
> ==================================
> summ=0
> cut $LOG_PATH/jur-traffic.log -d" " -f5 | (
>  while read var;
>  do
>     summ=`expr $summ + $var`;
>     echo "---------------------- $summ";
>  done
> )
> echo "---------------------- $summ";
> ==================================
> 

Если выбор языка shell для данной задачи обоснован исключительно для 
цели обучения языку shell, то вы выбрали плохую задачу. Если целью не 
являеся обучение, то лучше использовать, например, perl - задача будет 
решена быстро, красиво и качественно.

Например так,

#!/usr/bin/perl
#
# myscript.pl - /bin/sh suxx ;)
#

while(<>) { $sum += (split(/\s+/))[4]; }
print $sum."\n";


Вызов программы такой:
$ cat jur-traffic.log | myscript.pl

(каталог, где лежит myscript.pl должен быть в PATH)

-- 
С уважением, Владимир Леттиев aka crux <crux на syktsu.ru>



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