Article View: es.comp.os.linux.programacion
Article #12809Re: ¿Bash y el ámbito de las variables?
From: Jesus M. NAVARRO
Date: Wed, 09 May 2001 08:16
Date: Wed, 09 May 2001 08:16
55 lines
2903 bytes
2903 bytes
Hola, David: David Cana wrote: > Buenas. > > Este trozo de script lee de un fichero una lista de ficheros que hay que > copiar posteriormente: > > ------------ > ( > while read LINEA > do > LISTA_DIRS="$LISTA_DIRS .$LINEA" > MENSAJE="Agregando $LINEA a la lista de directorios a > copiar... > echo $MENSAJE > done > ) < $RUTA_FICHERO_CONF_BACKUP > > MENSAJE="La lista definitiva de directorios a copiar es $LISTA_DIRS" > echo $MENSAJE > ---------- > > Pues bien, no funciona. La variable LISTA_DIRS esta vac�a al final del > script. Parece como si nos hubi�ramos salido del �mbito de la variable. �sto > s� funciona: > > ------------ > ( > while read LINEA > do > LISTA_DIRS="$LISTA_DIRS .$LINEA" > MENSAJE="Agregando $LINEA a la lista de directorios a > copiar... > echo $MENSAJE > done > > MENSAJE="La lista definitiva de directorios a copiar es $LISTA_DIRS" > echo $MENSAJE > ) < $RUTA_FICHERO_CONF_BACKUP > ---------- > ...echa un vistazo a la evoluci�n de la variable $LISTA_DIRS l�nea por l�nea y ver�s lo que ocurre: El caso es que la redirecci�n de $RUTA_FICHERO_CONF_BACKUP se hace exactamente como pretendes: l�nea por l�nea. En el segundo caso la cosa funciona como t� quieres porque pides el valor de la variable *dentro* del bucle que lee l�neas(dentro de (...) < $RUTA_FICHERO_BACKUP), por lo que s�lo pides salida de valores *mientras hay valores*. En el primer caso, pides la salida *fuera* del bucle. El valor de la variable es el que queda *despu�s* de haber le�do la �ltima l�nea, o sea, nada (precisamente porque en esa iteraci�n ya no hay nada que leer es por lo que el bucle 'while read LINEA' "sabe" que ya ha acabado su trabajo).
Technical Details
Message-ID:
<3AF8FCCB.7020800@geocities.com>Path:
arc1-ca.pugleaf.net!archiver1.sj.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!193.251.151.101!opentransit.net!jussieu.fr!news.rediris.es!garse!news.iddeo.es!elrond.intranet!nobodyReferences:
<9d91qq$8al$1@diana.bcn.ttd.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,172d2a91d5047ff8 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2001-05-11 00:10:01 PST Path: arc1-ca.pugleaf.net!archiver1.sj.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!193.251.151.101!opentransit.net!jussieu.fr!news.rediris.es!garse!news.iddeo.es!elrond.intranet!nobody From: "Jesus M. NAVARRO" <jesus_navarro@geocities.com> Newsgroups: es.comp.os.linux.programacion Subject: Re: ¿Bash y el ámbito de las variables? Date: Wed, 09 May 2001 10:16:11 +0200 Organization: Iddeo - Retevisi�n Lines: 56 Message-ID: <3AF8FCCB.7020800@geocities.com> References: <9d91qq$8al$1@diana.bcn.ttd.net> NNTP-Posting-Host: 62.81.130.4 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit User-Agent: Mozilla/5.0 (X11; U; Linux 2.2.19-Nav02 i686; en-US; 0.8.1) Gecko/20010421 X-Accept-Language: es-ES, es, en