Miner, Jonathan W (CSC) (US SSA) wrote:
>
>
> -----Original Message-----
> From: fedora-list-bounces redhat com 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