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.062 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

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

   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

Explorando a entrada de dados com READ em Bash Shell

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

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Exemplos práticos de comandos com Parted

Simples e rápido: matando todos os processos de um usuário

#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.