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

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

Re: [shell-script] Dúvida para usar duas variáveis concatenadas em loop


From: Paulo Bettega
Subject: Re: [shell-script] Dúvida para usar duas variáveis concatenadas em loop for
Date: Wed, 28 Jan 2015 12:31:43 -0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

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


reply via email to

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