Trabalhar com array no Bash

Pretendo deixar mais claro aqui como trabalhar com arrays no bash. Espero que após ler esse artigo não restem dúvidas tais como: Quando devo usar? Por que devo usar? Quando não usar? Quais são as possíveis formas de se declarar um array? Posso trabalhar com índices alfanuméricos?

[ Hits: 67.893 ]

Por: Denis Doria em 26/06/2008


Como ler os valores de um array?



A primeira tentativa quando vamos ler um valor de uma variável é fazer:

$ VAR=1
$ echo $VAR

1

Se fizermos isso para um array dará errado:

$ array[0]='valor1'
$ array[1]='valor2'
$ array[2]='valor3'
$ echo $array[1]

valor1[1]

O que deu de errado? Estávamos esperando um resultado bem diferente: 'valor2', era o que queríamos.

Vamos entender melhor o problema para que possamos resolver, veja o que ocorre abaixo:

$ echo $array
valor1

O $array sempre retorna o valor do primeiro elemento, como o shell tem que interpretar os valores, ele não lê até o fim, por isso ocorre esse problema, para que isso não ocorra temos que fazer:

$ echo ${array[1]}
valor2

O uso de {} é uma boa prática, se acostume a utilizá-la não somente com array, mas também com variáveis normais.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Por que devo usar?
   3. Quais são as possíveis formas de se declarar um array?
   4. Como ler os valores de um array?
   5. Posso trabalhar com índices alfanuméricos?
   6. Dicas
Outros artigos deste autor

Como trabalhar com funções em bash

Leitura recomendada

Introdução a LUA, uma poderosa linguagem de programação

Recursos avançados do bash que você não aprende na escola

Dialog em GTK

Como trabalhar com funções em bash

Algoritmos em Shell Script

  
Comentários
[1] Comentário enviado por roberva em 26/06/2008 - 10:34h

Ótimo artigo! Excelente!
Até que enfim, uma luz de vida inteligente aqui...

Uma contrib. for dummies:

array=(1 2 3 4 5 6 7 8 9 10)
for i in ${array[*]}; do i=$[i-1]; echo ${array[$i]}; done


p.s: workaround = `i=$[i-1]`; kkkkkkkkkkk


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts