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

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

Re: [shell-script] Somando


From: William Marques
Subject: Re: [shell-script] Somando
Date: Wed, 14 Sep 2005 12:25:47 -0300
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

richardbortolucci escreveu:

Pessoal,

Estou tentando somar alguns valores assim:

# cat a
1
2
3
4
5
# cat a | while read n; do m=$(expr $m + $n); echo $m; done; echo m=$m
1
3
6
10
15
m=0

Como faço para manter a variável m fora do laço while? Ou seja, para
retornar no final m=15... Existe alguma outra maneira de fazer o
acúmulo de valores?

Grato,

Richard.





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

Links do Yahoo! Grupos







Permitam-me uma sugestão, que deve dar o resultado esperado, usando array:

#! /bin/bash
declare -a VAR1=( `cat lista.txt` )
i=0
while [ "${i}" -ne "${#VAR1[@]}" ]
do
m=`expr ${m} + ${VAR1[$i]}`
echo $m
i=$(($i+1))
done
echo -n "esta variável está fora do loop, mas contém o último valor dentro do loop: "
echo $m
exit 0
Resultado:
1
3
6
10
15
21
28
36
45
esta variável está fora do loop, mas contém o último valor dentro do loop: 45

O arquivo lista.txt:
1
2
3
4
5
6
7
8
9

Abraços a todos.

--
William Henrique Siqueira Marques
address@hidden



        

        
                
_______________________________________________________ Yahoo! Messenger com voz: PROMOÇÃO VOCÊ PODE LEVAR UMA VIAGEM NA CONVERSA. Participe! www.yahoo.com.br/messenger/promocao


reply via email to

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