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