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

Parte 2: Por que devo usar?

A resposta a essa pergunta é simples:

Porque você pode!

Simples assim, quando comecei a trabalhar com Shell Script, meus códigos eram uma zona, parecia que eu nunca tinha programado na minha vida.

Conforme fui me aprofundando, comecei a usar funções, variáveis locais, traps, opções da linha de comando, arrays, e isso tornou meus códigos mais simples, limpos e com certeza mais reaproveitáveis.

O uso de arrays deve ser incentivado, já que é quase impossível se trabalhar com muitos dados sem usar uma estrutura mais complexa do que o simples var=1.

Mas lidar com array em shell não é tão trivial, devido a sua estrutura, e não prestar atenção no que está fazendo pode deixar o seu programa inconsistente, principalmente em shell já que ele não dá diversos erros que outras linguagens dariam por erros simples.

Lembre-se que o shell não erro se uma variável não foi inicializada, ele simplesmente ignora e retorna vazio, essa é umas coisas que você deve se preocupar quando estiver manipulando os arrays.

Quando não usar?

Os arrays são relativamentos novos no mundo do SS, eles são implementados pelo bash e as versões mais antigas não suportam esse tipo de estrutura. Então usar um array significa diminuir a possibilidade de portar o seu script ou programa, para um outro Linux mais antigo, ou para outro que shell que não o bash.

Se você está buscando portabilidade o array não é uma boa, já que somente o bash atualmente possui essa capacidade, então o foco aqui é apenas em scripts que rodarão em bash novos, todos os exemplos que darei aqui são rodados em um:

Debian GNU/Linux SID
Bash version 3.1.17

Também não é aconselhável utilizar arrays quando temos poucas variáveis, assim como um switch case é inútil para apenas dois valores, usar um array para poucos valores apenas trará lógica desnecessária para o programa, mas como sempre digo isso é tudo uma questão de bom senso; às vezes vale a pena ter um array para 3 valores, às vezes não vale a pena tê-lo para 10, embora sejam situações bem mais raras.

   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

Wordpress em 30 segundos com WP-CLI

Programação com Shell Script

Reconhecimento de Voz no Linux

Introdução ao Shell Script (parte 2)

Introdução ao Shell Script - Baseado no livro de Ken O. Burtch

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