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.848 ]

Por: Denis Doria em 26/06/2008


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.

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

Shell Script: Primeiros conceitos

Debugando shell scripts

Introduzindo um pouco mais a fundo o shell script

Montando, monitorando e gerando logs dos compartilhamento NFS automaticamente

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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts