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: Fabiano Soares Honorato
Subject: Re: [shell-script] Dúvida para usar duas variáveis concatenadas em loop for
Date: Wed, 28 Jan 2015 11:03:22 -0200

Meu caro, evite usar ferramentas que o próprio sistema já tem.

Ao invés de usar:

var=`x+y |bc`

Faça algo como:

for i in $(seq 1 100)
  do var=$(( var+i ))
done



Em 27 de janeiro de 2015 20:00, Emmanuel Oliveira address@hidden [shell-script] <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 [shell-script]" <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 [shell-script] <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 [shell-script]" <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







--

Atenciosamente,
------------------------------
---------------------------------------
Fabiano Honorato
Infraestrutura
+55 21 3523-3955
---------------------------------------------------------------------
CALANDRA SOLUÇÕES
Transformando Informações em Resultados
---------------------------------------------------------------------

reply via email to

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