[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
- Somando, richardbortolucci, 2005/09/14
- Somando, Richard Bortolucci, 2005/09/14