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: 70.850 ]

Por: Denis Doria em 26/06/2008


Quais são as possíveis formas de se declarar um array?



Em shell temos basicamente duas maneiras de se declarar um array, vou tratar cada uma com o máximo de detalhes possíveis e em quais situações uma deveria ser usada e não a outra.

A primeira maneira é:

array=(valor1 valor2 valor3)

Acima temos um array com três valores, internamente o shell armazena essa estrutura dessa maneira:

array=([0]="valor1" [1]="valor2" [2]="valor3")

Esse tipo de declaração deixa o bash gerenciar os índices, ou seja, ele faz sozinho o incremento do índice.

Vamos ver com mais detalhes essa declaração:

array == Nome do array
(valor1 valor2 valor3) == Valores separados por espaços (lembre-se: SEPARADOS POR ESPAÇOS)

Vamos a segunda maneira de se criar um array:

array2[0]='valor1'
array2[1]='valor2'
array2[2]='valor3'

Vamos ver como o bash criou a estrutura:

array2=([0]="valor1" [1]="valor2" [2]="valor3")

Como pode ser visto, não faz a menor diferença para o bash como é feita a declaração, a estrutura é sempre a mesma.

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

Programação com Shell Script

Mini-tutorial Shell

Dialog em GTK

Algoritmos em Shell Script

Como matar um processo - kill, killall, pkill e xkill

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts