|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 17 Feb 2003 16:54:45 To : Ilya Lushcheev Subject : Re: sh: Присвоение глобальной переменной в цикле --------------------------------------------------------------------------------
IL> ----------------------------------------------
IL> #!/bin/sh
IL> INFILE=./111
IL> b="0"
IL> cat $INFILE|while read a ;do
IL> b=$(($b+$a))
IL> echo $a $b
IL> done
IL> echo !! $b !!
IL> ----------------------------------------------
/bin/sh выполняет конвеер в subshell, соответственно после done
subshell завершает свою работу и посчитанный $b исчезает.
Кроме того, cat тут лишний. Делай так:
while ...
...
done < $INFILE
Eugene
--
"Люди забыли эту истину," - сказал Лис, - "но ты не забывай"
--- slrn/0.9.7.4 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/26093c73652d3.html, оценка из 5, голосов 10
|