[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Guardar valor de saida de comando em variavel
From: |
Julio C. Neves |
Subject: |
Re: [shell-script] Guardar valor de saida de comando em variavel |
Date: |
Sun, 3 Jun 2012 09:31:56 -0300 |
Fala Fernando,
provavelmente o uso de vetores, como vc sugeriu, é a melhor solução e, como
vc disse, em muitas linguagens (e conheço diversas) não é possível usar
variáveis como nome de variáveis, mas em shell existe o evel. Enrola a
guerra, mas resolve.
Suponha que eu queira guardar a saída de um ls em uma variável que tem uma
variável no nome. Veja:
i=12
eu quero colocar em a$ib (a12b) a saída do ls. Faço assim:
$ var="a${i}b=\"$(ls)\""
repare que as \" são para colocar aspas literais na saída, pois o ls tem
<ENTER> no meio e quero preservá-los. Veja a continuação:
$ echo "$var" # veja que a atribuição já esta pronta em $var
a12b="crachafoto.sh
cracha.yad
Foto1.jpeg
Foto.jpeg"
$ eval "$var" # este é o pulo do gato do shell
$ echo "$a12b" # Pronto. Acabou-se tudo.
crachafoto.sh
cracha.yad
Foto1.jpeg
Foto.jpeg
Abcs,
Julio
*
*
Em 3 de junho de 2012 01:06, Fernando Mercês <address@hidden> escreveu:
> **
>
>
> Opa, creio não ser possível fazer o que você quer deste jeito. O que você
> está tentando é declarar variáves com nomes variáveis e eu nunca vi isso em
> nenhuma linguagem (não conheço muitas, nem sou nenhum programador de
> verdade), mas enfim, eu acho que utilizar um array resolveria:
>
> for i in {2..5}; do
> mpls[$i]="saida do comando $i"
> done
>
> Aí você pode acessar ${mpls[2]}, ${mpls[3]} etc. O que acha?
>
> Abraço.
>
> Att,
>
> Fernando Mercês
> Linux Registered User #432779
> www.mentebinaria.com.br
> ------------------------------------
> "Ninguém pode ser escravo de sua identidade; quando surge uma possibilidade
> de mudança é preciso mudar". (Elliot Gould)
>
> On Sat, Jun 2, 2012 at 6:00 PM, edmundo_goncalves <
> address@hidden> wrote:
>
> > **
> >
> >
> > Olá pessoal!
> >
> > Não consigo guardar valor de saida de comando na variável, tentei de duas
> > formas
> >
> > for i in `seq 2 5` ; do
> > snmpwalk -v 1 -c public -Oqv 192.168.1.8 IF-MIB::ifInOctets."$i" >
> > tmp/"$i"_down1
> > snmpwalk -v 1 -c public -Oqv 192.168.1.8 IF-MIB::ifOutOctets."$i" >
> > tmp/"$i"_up1
> > mpls_"$i"_down1=`cat tmp/"$i"_down1`
> > mpls_"$i"_up1=`cat tmp/"$i"_up1`
> > done
> >
> > porem ao executar ele me mostra por exemplo: mpls_2_down1=2960014678:
> > command not found
> >
> > segunda forma:
> >
> > for i in `seq 2 5` ; do
> > mpls_"$i"_down1=$(snmpwalk -v 1 -c public -Oqv 192.168.1.8
> > IF-MIB::ifInOctets."$i")
> > mpls_"$i"_up1=$(snmpwalk -v 1 -c public -Oqv 192.168.1.8
> > IF-MIB::ifOutOctets."$i")
> > done
> >
> > porem ao executar ele me mostra por exemplo: mpls_2_down1=2960169411:
> > command not found
> >
> > Obrigado a todos que poderem me ajudar!
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
[As partes desta mensagem que não continham texto foram removidas]
Re: Guardar valor de saida de comando em variavel, edmundo_goncalves, 2012/06/03