pytanko z basha

Karol Kreński pldmimooh w inf.sgsp.edu.pl
Śro, 31 Mar 2004, 14:41:06 CEST


> Jakub Bogusz wrote:
> > On Wed, Mar 31, 2004 at 01:30:53PM +0200, Karol Kreński wrote:
> > > Witam,
> > > 
> > > 
> > > head -2 /etc/passwd | while read z; do
> > 
> > Po pierwsze to "head -n 2"
> > 
> > >         echo "wewnątrz while z: $z"
> > > done
> > > echo "poza while z: $z" #pustka...
> > > 
> > > Zmienna $z jest widoczna tylko wewnątrz while. Dwa pytanka:
> > > 
> > > 1. Dlaczego tylko tam $z jest widoczna? To mi nie wygląda na
> > > uruchomienie podshella.
> > 
> > Bo pętla się kończy po odczytaniu pustego $z?
> 
> Owszem, ale nie tylko.
> "while" w potoku jest realizowany przez podpowloke, ktora nie jest w stanie
> ustawic zadnej zmiennej swojej powloce macierzystej.
Hmmm, podpowłoka jednak. Niedobrze. Tam będzie w pętli ustawianych wiele
zmiennych i nie mam pomysłu jak je powłoce macierzystej zwrócić.
Wychodzi na to, że muszę przekazywać przez tymczasowy plik? Gdybym
próbował a=`polecenie podpowłoki` to i tak nie czuję jak ten kod
powinien wyglądać. Przytoczę kod jeszcze raz, bo został wycięty:

head -2 /etc/passwd | while read z; do
        echo "wewnątrz while z: $z"
done
echo "poza while z: $z" #pustka...

mimooh



Więcej informacji o liście dyskusyjnej pld-devel-pl