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

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

RES: Ref: [shell-script] shell ou nao shell, eis a questao


From: Rodolfo Villanova
Subject: RES: Ref: [shell-script] shell ou nao shell, eis a questao
Date: Tue, 22 Apr 2003 15:43:00 -0300

Ô Aurélio,

Em parte tu tens razão!

Fiquei tão entusiasmado com o que havia encontrado que sequer havia testado 
exaustivamente aquele pedaço de script antes de enviar a resposta!

Realmente há a limitação de só ser possível incluir até 10x10 no que 
normalmente eu chamaria de "matriz".

Se o que segue abaixo não reproduz o princípio de matriz, então nunca entendi 
ou já esqueci qual o conceito de matrizes (o que vem a reforçar um antigo ódio 
à matemática, mesmo! %P)

Meu script de teste:

#!/bin/ksh
k=9999999
for i in 1 2 3 4 5 6 7 8 9 10
do
        for j in 1 2 3 4 5 6 7 8 9 10
        do
            ((k+=1))
            P[$i$j]=$k
        done
done

for i in 1 2 3 4 5 6 7 8 9 10
do
        for j in 1 2 3 4 5 6 7 8 9 10
        do
            echo "${P[$i$j]} \t\c"
        done
        echo
done
------

Grato pela atenção,

Rodolfo Villanova


-----Mensagem original-----
De: aurelio [mailto:address@hidden]
Enviada em: terça-feira, 22 de abril de 2003 11:25
Para: address@hidden
Assunto: Re: Ref: [shell-script] shell ou nao shell, eis a questao


oi rodolfo,

 --- Rodolfo Villanova <address@hidden>
> Permita-me discordar da tua afirmação (puxa vida, vou contestar o
> grande mestre Aurélio Jargas!)

ei, mestre aqui é o julio, o shell-guru.
eu sou aprendiz de shelleiro ;)


> É possível, sim, utilizar o princípio de manipulação de matrizes em
> shell-script.

bem, então receio que não temos o mesmo conceito de matrizes :)

> > for i in 1 2 3
> > do
> >     for j in 1 2 3
> >     do
> >             [ "${P[$i$j]}" = X ] && LX[i]=$((${LX[$i]}+1))
> >             [ "${P[$i$j]}" = O ] && LO[i]=$((${LO[$i]}+1))
> >             [ "${P[$j$i]}" = X ] && CX[i]=$((${CX[$i]}+1))
> >             [ "${P[$j$i]}" = O ] && CO[i]=$((${CO[$i]}+1))
> >     done
> > done

ok, isso funciona, mas não deixa de ser um array
unidimensional, com apenas uma "linha" e várias
"colunas".

um array assim como eu o conheço, deve ter linhas e colunas.
tipo assim:

array[0] = (1 2 3 4 5)      # linha 1
array[1] = (1 2 3 4 5)      # linha 2
...
array[N] = (...)            # linha N

pra depois você acessar como:

   array[linha][coluna]


até onde eu vi, em shell não dá pra fazer matrizes com
linhas e colunas:

> > > mas uma pergunta... dá pra trabalhar com matriz em shell?
> > também não sei, vamos ver:
> > # a[0]=(1 2 3 4)
> > bash: a[0]: cannot assign list to array member
> > Resposta: não  &:)


mas usando a técnica do trecho do script do julio se pode
"simular" uma matriz com linhas e colunas se usar as
dezenas como linhas e as unidades como colunas.

mas isso te limita a uma matriz de tamanho máximo de
10 linhas e 10 colunas (array[99]).




=====
-- 
ATENCAO: o www.verde666.org vai morrer, use www.aurelio.net
ATTENTION: www.verde666.org is no more, use www.aurelio.net

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3, 
filtro contra spam. 
http://br.mail.yahoo.com/


---------------------------------------------------------------------
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.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em: 
http://br.yahoo.com/info/utos.html 





reply via email to

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