|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Dúvida para usar duas variáveis concatenadas em loop for |
Date: | Thu, 29 Jan 2015 10:04:22 -0200 |
O_o putz, Mestre Julio, esse deve ser o cúmulo do KISS :)
On 28-01-2015 11:43, 'Julio C. Neves' address@hidden [shell-script] wrote:
> Fala Emmanuel,
> veja se esse passo a passo resolve teu problema:
>
> $ Var_01=10
> $ Var_02=20
> $ Var_90=90
> $ echo $Var_{01..90}
> 10 20 90
> $ echo $Var_{01..90} | tr ' ' +
> 10+20+90
> $ echo $Var_{01..90} | tr ' ' + | bc
> 120
>
> Abcs,
> Julio
> *@juliobash**
> Próximos cursos de Shell*
> *Cidade LocalPeríodo*
> *Rio de JaneiroEDX <http://edx.srv.br/>09 a 13/03/15*
> *São Paulo 4Linux <http://www.4linux.com.br/cursos/programacao-em-shell-script>23 a 27/03/15 *
> Dou treinamento de /Shell/ em qualquer cidade.
> Para mais detalhes, me mande um e-mail <mailto:address@hidden>.
>
>
> Em 27 de janeiro de 2015 20:00, Emmanuel Oliveira address@hidden
> <mailto:address@hidden> [shell-script] <address@hidden
> <mailto:address@hidden>> escreveu:
>
> __
>
> Pessoal, em primeiro lugar agradeço imensamente a rapidez e ajuda nas respostas.
>
> Eu quis simplificar a dúvida, para facilitar a explicação, mas parece que é mais efetivo dizer o
> que realmente estou tentando fazer.
>
> Tenho 100 variáveis, criadas de VAR_01 até VAR_100 por um outro script.
>
> Preciso somar o valor final delas. Só isso .....
>
> Acho que talvez eu esteja complicando...
>
> O que estava tentando fazer era :
>
> --------------------------------------------------------------------------
> !/bin/bash
>
> # eu preciso calcular a soma de todas as variáveis, de VAR_01 a VAR_100
>
>
> for i in $(seq 1 100)
> do
>
> CONTADOR=`echo "$CONTADOR + $VAR_$i" | bc`
>
>
> done
>
> --------------------------------------------------------------------------
>
> Acho que eu acabei complicando a minha dúvida e a resolução.
>
> Alguma forma mais prática de resolver essa soma ?
>
> Muito obrigado mesmo Fernando, Júlio e Gustavo.
>
> Emmanuel
>
>
>
>
>
>
> Em Terça-feira, 27 de Janeiro de 2015 18:44, "'Gustavo S. L.' address@hidden
> <mailto:address@hidden> [shell-script]" <address@hidden
> <mailto:address@hidden>> escreveu:
>
>
> E se quiser manter essa ordem de uma variável abaixo da outra, pode fazer:
>
> #!/bin/bash
> variavel[1]="1"
> variavel[2]="-3"
> variavel[3]="8"
> variavel[4]="-1"
> variavel[5]="0"
> for i in ${variavel[*]}
> do
> echo $i
> done
>
>
> Em 27 de janeiro de 2015 19:30, 'Julio C. Neves' address@hidden
> <mailto:address@hidden> [shell-script] <address@hidden
> <mailto:address@hidden>> escreveu:
>
> __
> Boa tarde Emmanuel,
> Se vc fizer:
> $ VAR_=10
> A saída do seu script sera101, 102, ..., 105, isso pq em qq linguagem interpretada, a
> interpretação é da esquerda para a direita. Isso significa que a variável $VAR_ será
> resolvida em primeiro lugar e estará vazia.
> Para evitar que isso ocorra, faça:
> eval echo $VAR_$i
> Em 27/01/2015 19:10, "Emmanuel Oliveira address@hidden
> <mailto:address@hidden> [shell-script]" <address@hidden
> <mailto:address@hidden>> escreveu:
>
> __
> Olá pessoal.
>
> Desculpem a simplicidade da dúvida, mas sou meio iniciante no shell, e realmente não
> estou conseguindo resolver.
>
> Já pesquisei no google, e realmente não estou achando a solução.
>
> Segue abaixo o script bem simples; ele é parte de um script maior, mas separei o que
> interessa:
>
> -----------------------------------------------------
> #!/bin/bash
>
> VAR_1="-1"
> VAR_2="1"
> VAR_3="3"
> VAR_4="-1"
> VAR_5="8"
>
> for i in $(seq 1 5)
> do
>
> echo $VAR_$i
>
> done
>
> -----------------------------------------------------
>
> o resultado é sempre esse :
>
> ./executa.sh
>
> 1
> 2
> 3
> 4
> 5
>
> quando eu precisava que fosse :
>
> ./executa.sh
>
> -1
> 1
> 3
> -1
> 8
>
> em resumo, não está lendo a variável : $VAR_$i como $VAR_1
>
> Alguém poderia dar uma ajuda para resolver essa dúvida ?
>
> Desde já, muito obrigado mesmo.
>
> Emmanuel
>
>
>
>
>
>
> ----------------------------------------------------------------------------------------------------
> Enviado por: "Julio C. Neves" <address@hidden>
> ----------------------------------------------------------------------------------------------------
------------------------------------
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
------------------------------------
Links do Yahoo Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
address@hidden
<*> O uso que você faz do Yahoo Grupos está sujeito aos:
https://info.yahoo.com/legal/br/yahoo/utos/terms/
[Prev in Thread] | Current Thread | [Next in Thread] |