[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