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

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

"Bizarrices" com Arrays.


From: Gentil de Bortoli Júnior
Subject: "Bizarrices" com Arrays.
Date: Wed, 29 Dec 2004 16:39:07 -0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Pessoal, agora é minha vez de pedir um help para tentar entender algumas coisas que estão acontecendo.

Eu estou escrevendo um script que faz algumas brincadeiras com arrays. Algo não saiu como eu queria e comecei a fazer testes.

A primeira dúvida é essa:

[gentil@gentil:~]$ variavel[11111]="Bla Bla"
[gentil@gentil:~]$ variavel[aaaaa]="Bla Bla"
[gentil@gentil:~]$ variavel[aa111]="Bla Bla"
[gentil@gentil:~]$ variavel[11aaa]="Bla Bla"
bash: 11aaa: value too great for base (error token is "11aaa")
[gentil@gentil:~]$

##### Ou seja, por que quando eu tentei definir a chave do meu array com a string "11aaa" eu obtive o erro acima?

A segunda dúvida é a seguinte:

[gentil@gentil:~]$ variavel[11_111]="Bla Bla"
bash: 11_111: value too great for base (error token is "11_111")
[gentil@gentil:~]$

Obtive o erro acima. Então mudei e fiz algo assim:

[gentil@gentil:~]$ variavel[11^111]="Bla Bla"
[gentil@gentil:~]$ echo ${variavel[11^111]}
Bla Bla
[gentil@gentil:~]$

Parece que funcionou, certo? Mas aí, fui fazer mais um teste, vejam:

[gentil@gentil:~]$ variavel[11^111]=6
[gentil@gentil:~]$ variavel[11^222]=7
[gentil@gentil:~]$ echo ${variavel[11^111]}
6
[gentil@gentil:~]$

Ok, isso funcionou como o esperado mas... o que acontece aqui?

[gentil@gentil:~]$ variavel[1916^AAAA]=6
[gentil@gentil:~]$ variavel[1916^YYYY]=5
[gentil@gentil:~]$ echo ${variavel[1916^AAAA]}
5
[gentil@gentil:~]$

Ou seja, pedi o valor de uma variável e recebi o valor da outra.

E nesse último exemplo, volta a funcionar:

[gentil@gentil:~]$ variavel[1111^YYYY]=5
[gentil@gentil:~]$ variavel[2222^AAAA]=6
[gentil@gentil:~]$ echo ${variavel[1111^YYYY]}
5
[gentil@gentil:~]$

Desculpem o e-mail grande e chato mas... não estou sacando o que está acontecendo.

[]s

Gentil.


reply via email to

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