Miner, Jonathan W (CSC) (US SSA) wrote: > > > -----Original Message----- > From: fedora-list-bounces@xxxxxxxxxx on behalf of Dario Lesca > Sent: Wed 10/31/2007 09:12 AM > To: Fedora Project List > Cc: > Subject: bash question > > In this shell script: > >> #!/bin/bash >> i=0 >> >> printf "a a a\nb b b\nc c c\n" | >> while read x >> do >> i=$[i+1] >> echo "$x: ($i)" >> done >> >> echo $i > > ------------------------------- > > By pipe'ing the commands together, you cause the while loop to be executed in a subshell. Change your script to be: > > #!/bin/bash > i=0 > > while read x > do > i=$[i+1] > echo "$x: ($i)" > done << _EOF_ > a a a > b b b > c c c > _EOF_ > > echo $i > > > Or: #!/bin/bash printf "a a a\nb b b\nc c c\n" | { i=0 while read x do i=$[i+1] echo "$x: ($i)" done echo $i } -- Sjoerd Mullender
Attachment:
signature.asc
Description: OpenPGP digital signature