shell-script-pt
[Top][All Lists]
Advanced

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

Re: [shell-script] Depois do done minhas variaveis somem??


From: Gentil de Bortoli Jr
Subject: Re: [shell-script] Depois do done minhas variaveis somem??
Date: Wed, 16 Nov 2005 14:02:21 -0200
User-agent: Thunderbird 1.4.1 (X11/20051006)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Rogério, isso acontece pois a variável $REDE que você define dentro do
while só existe no escopo desse laço, o qual foi criado em um sub-shell
(pelo pipe). Quando você termina o while, e por conseqüência o sub-shell
criado por ele, e volta para o shell que iniciou o processo, a variável
$REDE não está definida. Se não me engano, isso foi bem discutido em
algumas mensagens anteriores. Espero não estar falando besteira. Estou
no estado de letargia pós-almoço. :)

Como você reparou, eu enrolei e não dei a solução para esse caso. Mas
envio uma outra sugestão:

#!/bin/bash
for REDE in $(grep : /proc/net/dev | grep -v lo | cut -d : -f 1)
do
    let I++
    [ "${REDES}" ] && REDES="${REDES}, Rede ${I} = '${REDE}'" \
    || REDES="Rede ${I} = '${REDE}'"
done
echo $REDES

[]s
- --
Gentil de Bortoli Júnior
http://gentil.bortoli.com.br
KeyID: 0x8383E070 - www.keyserver.net

"There Is No Gene For The Human Spirit"

Rogério Poças - Desenvolvimento wrote:
> =============>Corte aqui<==============
> #!/bin/bash
> CONTADOR=1
> cat /proc/net/dev | grep : | grep -v lo | cut -c0-6 |
> while read i
> do
>         echo "$i - $CONTADOR"
>         REDE="$REDE , rede$CONTADOR = '$i' "
>         CONTADOR=`expr $CONTADOR + 1`
>         echo -e "$REDE"    #Aqui funfa :-)
> done
> echo -e "$REDE"     #Aqui não :-(
> =============>Corte aqui<==============
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDe1gNU6AHyoOD4HARAiNRAKCuXrM4Fyd/u8PwWkFSSIc+BJNn1ACdE1iW
HSUaftOc0dcZJoiQyuKvVzo=
=EYlo
-----END PGP SIGNATURE-----


reply via email to

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