quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Quilt-dev] [OT] bash question


From: Jean Delvare
Subject: [Quilt-dev] [OT] bash question
Date: Thu, 8 Sep 2005 23:08:27 +0200

Hi all,

I have a half off-topic question about bash, and figured out that there
were some experts here who may come to my help :)

It looks like, when using pipes in bash, the scope of variables changes.
Consider the following example:

--- 8< ---
#!/usr/bin/bash

for ((i = 0; i < 4; i++))
do
        n=$i
done

echo "n=$n i=$i"
--- 8< ---

This prints "n=3 i=4" as one would expect. However, if I change it to:

--- 8< ---
#!/usr/bin/bash

for ((i = 0; i < 4; i++))
do
        n=$i
done \
| cat

echo "n=$n i=$i"
--- 8< ---

This does print "n= i=", that is, the n and i variables are no more
defined past the loop. Can someone explain why? Is there a way to change
that behavior? I am in a case where I badly need the value of one inner
variable after such a construct.

Thanks,
-- 
Jean Delvare




reply via email to

[Prev in Thread] Current Thread [Next in Thread]