From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <415BF14A.7010206@syktsu.ru> Date: Thu, 30 Sep 2004 15:43:06 +0400 From: Vladimir Lettiev User-Agent: Mozilla Thunderbird 0.6 (X11/20040511) X-Accept-Language: en-us, en MIME-Version: 1.0 To: community@altlinux.ru Subject: Re: [Comm] =?KOI8-R?Q?=C5=DD=C5_=CF=C4=C9=CE_=D7=CF=D0=D2=CF?= =?KOI8-R?Q?=D3_=D0=CF_bash?= References: <415BD99A.1090904@list.ru> In-Reply-To: <415BD99A.1090904@list.ru> X-Enigmail-Version: 0.84.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Sep 2004 11:42:49 -0000 Archived-At: List-Archive: List-Post: 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