Код: Выделить всё
#!/bin/bash
flag=0
/bin/ps -A | while read i
do
flag=$((flag+1))
echo $flag
done
echo "and finally: $flag"
очень хочется, тобы в строчке после done $flag был равен тому, до чего он дошел внутри while. очевидно, что вся конструкция while запускается в отдельном процессе bash, поэтому все работает совсем не так, как мне хочется. собственно вопро: как фиксить?
elide добавил в 11.05.2005 17:14
пройдясь по залежам инфы в собственной памяти, переписал код в виде
Код: Выделить всё
#!/bin/bash
flag=0
while read i
do
flag=$((flag+1))
echo $flag
done <<EOT
`/bin/ps -A`
EOT
echo "and finally: $flag"
но кто-нибудь, обясните мне, почему эта конструкция выполняется в одном процессе?