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

[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]



reply via email to

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