Pular para o conteúdo

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?
Denis Doria thuck
Hits: 73.061 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

Parte 4: 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.

   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

Como trabalhar com funções em bash

Mini-tutorial Shell

Shell Script: Primeiros conceitos

Pipelines (Canalizadores)

Personalize seu shell na entrada de seu logon

Algoritmos em Shell Script

#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

Entre na sua conta para comentar.