[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 16:27:28 -0300 |
Ih, amigos.
Andei aumentando o valor de colunas do que eu chamei de "matriz" (o limite da
letra "j" no script), botei pra rodar e ela "foi embora"...
Sendo assim, a limitação do que eu chamei de "matriz" em 10x10 caiu por terra;
ou seja, há a limitação de 10 linhas (subscript out of range), mas quanto ao
número de colunas, quem quiser que teste exaustivamente e encontre o seu
limite...
Abraço, amigos, e me desculpem pelo que ignoro.
Rodolfo
-----Mensagem original-----
De: Rodolfo Villanova
[mailto:address@hidden]
Enviada em: terça-feira, 22 de abril de 2003 15:43
Para: address@hidden
Assunto: RES: Ref: [shell-script] shell ou nao shell, eis a questao
Ô 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
---------------------------------------------------------------------
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