|
|
|
|
||||||
| comp.unix.shell Using and programming the Unix shell. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Look at these 2 similar scripts:
(1) echo -e "aaa\nbbb\nccc\nddd" >tmp value=0; while read line; do value=`expr $value + 1` echo $value done <tmp rm -f tmp echo "at last: $value" result: 1 2 3 4 at last: 4 (2) value=0 echo -e "aaa\nbbb\nccc\nddd" | while read line; do value=`expr $value + 1` echo $value done echo "at last: $value" result: 1 2 3 4 at last: 0 I don't want to add a 'tmp' file, is there any other way? And I also want to know what makes the differences. Thank you |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Roc Zhou <chowroc.z@gmail.com> wrote:
> Look at these 2 similar scripts: > (1) > echo -e "aaa\nbbb\nccc\nddd" >tmp > value=0; > while read line; do > value=`expr $value + 1` > echo $value > done <tmp > rm -f tmp > echo "at last: $value" > > result: > 1 > 2 > 3 > 4 > at last: 4 > > (2) > value=0 > echo -e "aaa\nbbb\nccc\nddd" | while read line; do > value=`expr $value + 1` > echo $value > done > echo "at last: $value" > > result: > 1 > 2 > 3 > 4 > at last: 0 > > I don't want to add a 'tmp' file, is there any other way? And I also > want to know what makes the differences. Try this script and see if it gives you any clues: echo "---" >tmp while read line; do ps aux | grep "$0" | grep -v grep done <tmp rm -f tmp echo "---" echo line | while read line; do ps aux | grep "$0" | grep -v grep done -- Kenan Kalajdzic |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On 2007-05-16, Roc Zhou wrote:
> Look at these 2 similar scripts: > (1) > echo -e "aaa\nbbb\nccc\nddd" >tmp > value=0; > while read line; do > value=`expr $value + 1` > echo $value > done <tmp > rm -f tmp > echo "at last: $value" > > result: > 1 > 2 > 3 > 4 > at last: 4 > > (2) > value=0 > echo -e "aaa\nbbb\nccc\nddd" | while read line; do > value=`expr $value + 1` > echo $value > done > echo "at last: $value" > > result: > 1 > 2 > 3 > 4 > at last: 0 > > I don't want to add a 'tmp' file, is there any other way? And I also > want to know what makes the differences. See the FAQ: <http://cfaj.freeshell.org/shell/cus-faq.html#JJ> -- Chris F.A. Johnson, author <http://cfaj.freeshell.org/shell/> Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress) ===== My code in this post, if any, assumes the POSIX locale ===== and is released under the GNU General Public Licence |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
I got it, Thank you very much.
On 5ÔÂ17ÈÕ, ÉÏÎç12ʱ08·Ö, "Chris F.A. Johnson" <cfajohn...@gmail.com> wrote: > On 2007-05-16, Roc Zhou wrote: > > > > > Look at these 2 similar scripts: > > (1) > > echo -e "aaa\nbbb\nccc\nddd" >tmp > > value=0; > > while read line; do > > value=`expr $value + 1` > > echo $value > > done <tmp > > rm -f tmp > > echo "at last: $value" > > > result: > > 1 > > 2 > > 3 > > 4 > > at last: 4 > > > (2) > > value=0 > > echo -e "aaa\nbbb\nccc\nddd" | while read line; do > > value=`expr $value + 1` > > echo $value > > done > > echo "at last: $value" > > > result: > > 1 > > 2 > > 3 > > 4 > > at last: 0 > > > I don't want to add a 'tmp' file, is there any other way? And I also > > want to know what makes the differences. > > See the FAQ: <http://cfaj.freeshell.org/shell/cus-faq.html#JJ> > > -- > Chris F.A. Johnson, author <http://cfaj.freeshell.org/shell/> > Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress) > ===== My code in this post, if any, assumes the POSIX locale > ===== and is released under the GNU General Public Licence |
|
![]() |
| Outils de la discussion | |
|
|