* [Comm] еще один вопрос по bash
@ 2004-09-30 10:02 Jury Levykin
2004-09-30 10:10 ` Artem K. Jouravsky
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Jury Levykin @ 2004-09-30 10:02 UTC (permalink / raw)
To: community
Следующий код увеличивает значение 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";
==================================
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 10:02 [Comm] еще один вопрос по bash Jury Levykin
@ 2004-09-30 10:10 ` Artem K. Jouravsky
2004-09-30 10:26 ` bukharov on cra
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Artem K. Jouravsky @ 2004-09-30 10:10 UTC (permalink / raw)
To: community
On Thu, Sep 30, 2004 at 02:02:02PM +0400, 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";
> ==================================
Может быть, лучше посмотреть в сторону awk?
--
С уважением,
Артём.
ЗАО "СЕМА.РУ"
************
Ну если хочется - кто же запретит? ;-)
-- rider in devel@
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 10:02 [Comm] еще один вопрос по bash Jury Levykin
2004-09-30 10:10 ` Artem K. Jouravsky
@ 2004-09-30 10:26 ` bukharov on cra
2004-09-30 10:27 ` php-coder
2004-09-30 11:43 ` Vladimir Lettiev
3 siblings, 0 replies; 10+ messages in thread
From: bukharov on cra @ 2004-09-30 10:26 UTC (permalink / raw)
To: community
Hello Jury,
Thursday, September 30, 2004, 2:02:02 PM, you 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";
> ==================================
Попробуй проверить значение переменной $var, может туда не цифра
попадает ?
--
Best regards,
bukharov mailto:bukharov@cra.vodokanal.spb.ru
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 10:02 [Comm] еще один вопрос по bash Jury Levykin
2004-09-30 10:10 ` Artem K. Jouravsky
2004-09-30 10:26 ` bukharov on cra
@ 2004-09-30 10:27 ` php-coder
2004-09-30 10:38 ` Jury Levykin
2004-09-30 11:43 ` Vladimir Lettiev
3 siblings, 1 reply; 10+ messages in thread
From: php-coder @ 2004-09-30 10:27 UTC (permalink / raw)
To: Jury Levykin
0000100101011110100100101::30.09.2004::0110001001001000100111100100010
Здравствуйте, Jury!
Отвечаю на Ваше письмо:
JL> но после выхода из цикла там опять ноль ??
Я так понимаю, это из-за того что в цикле она локальная...
Попробуйте вообще убрать скобки или перестроить всю конструкцию
:-)
--
С уважением, php-coder (mailto:php-coder[at]ngs[dot]ru)
Registered Linux User #327594
ALT Linux Master 2.2 (kernel 2.4.27)
010010010010010001010101100::Linux RuleZz!::100010010001000100010001110
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 10:27 ` php-coder
@ 2004-09-30 10:38 ` Jury Levykin
2004-09-30 13:27 ` Re[2]: " Maksim Otstavnov
0 siblings, 1 reply; 10+ messages in thread
From: Jury Levykin @ 2004-09-30 10:38 UTC (permalink / raw)
To: community
php-coder пишет:
>JL> но после выхода из цикла там опять ноль ??
>
> Я так понимаю, это из-за того что в цикле она локальная...
> Попробуйте вообще убрать скобки или перестроить всю конструкцию
> :-)
>
>
Да получается, что внутри цикла переменная локальная,
хотя и объявлена до цикла.
Скобки я уберал - тоже эффект.
Как написать то-же без цикла - не заю.
Сейчас записываю summ в tmp файл а после цикла беру обратно.
-- это конечно криво :(
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 10:02 [Comm] еще один вопрос по bash Jury Levykin
` (2 preceding siblings ...)
2004-09-30 10:27 ` php-coder
@ 2004-09-30 11:43 ` Vladimir Lettiev
2004-10-01 6:30 ` Jury Levykin
3 siblings, 1 reply; 10+ messages in thread
From: Vladimir Lettiev @ 2004-09-30 11:43 UTC (permalink / raw)
To: community
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>
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re[2]: [Comm] еще один вопрос по bash
2004-09-30 10:38 ` Jury Levykin
@ 2004-09-30 13:27 ` Maksim Otstavnov
2004-10-01 6:26 ` Jury Levykin
0 siblings, 1 reply; 10+ messages in thread
From: Maksim Otstavnov @ 2004-09-30 13:27 UTC (permalink / raw)
To: Jury Levykin
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 13:27 ` Re[2]: " Maksim Otstavnov
@ 2004-10-01 6:26 ` Jury Levykin
0 siblings, 0 replies; 10+ messages in thread
From: Jury Levykin @ 2004-10-01 6:26 UTC (permalink / raw)
To: community
Maksim Otstavnov пишет:
>В четвертых, почему бы Вам в данном конкретном случае не написать
>просто что-то вроде:
>
>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";
>}
>
>
Спасибо, помогло.
:)
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-09-30 11:43 ` Vladimir Lettiev
@ 2004-10-01 6:30 ` Jury Levykin
2004-10-01 6:43 ` Mike Lykov
0 siblings, 1 reply; 10+ messages in thread
From: Jury Levykin @ 2004-10-01 6:30 UTC (permalink / raw)
To: community
Vladimir Lettiev пишет:
> Если выбор языка shell для данной задачи обоснован исключительно для
> цели обучения языку shell, то вы выбрали плохую задачу. Если целью не
> являеся обучение, то лучше использовать, например, perl - задача будет
> решена быстро, красиво и качественно.
>
> Например так,
>
> #!/usr/bin/perl
> #
> # myscript.pl - /bin/sh suxx ;)
> #
>
> while(<>) { $sum += (split(/\s+/))[4]; }
> print $sum."\n";
Спасибо, на перл конечно удобнее,
но я года четыре не писал на Perl.
Посоветуйте хороший online справочник / учебник по Perl.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Comm] еще один вопрос по bash
2004-10-01 6:30 ` Jury Levykin
@ 2004-10-01 6:43 ` Mike Lykov
0 siblings, 0 replies; 10+ messages in thread
From: Mike Lykov @ 2004-10-01 6:43 UTC (permalink / raw)
To: community
В сообщении от Пятница 01 Октябрь 2004 11:30 Jury Levykin написал:
> Посоветуйте хороший online справочник / учебник по Perl.
http://www.balakovo.san.ru/%7Emishin/oreilly/
O'Reilly - рулит
--
Mike Lykov
Samara, "Vesna" parfum company, System administrator
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2004-10-01 6:43 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-30 10:02 [Comm] еще один вопрос по bash Jury Levykin
2004-09-30 10:10 ` Artem K. Jouravsky
2004-09-30 10:26 ` bukharov on cra
2004-09-30 10:27 ` php-coder
2004-09-30 10:38 ` Jury Levykin
2004-09-30 13:27 ` Re[2]: " Maksim Otstavnov
2004-10-01 6:26 ` Jury Levykin
2004-09-30 11:43 ` Vladimir Lettiev
2004-10-01 6:30 ` Jury Levykin
2004-10-01 6:43 ` Mike Lykov
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git