Tutorial de Arrays em Bash com 15 exemplos de operações
Criar e manipular arrays são tarefas básicas nos scripts de muitas linguagens, mas quem faz scripts shell muitas vezes deixa de usar bem este recurso, seja por razões históricas (especialmente quando o usuário dominou o Bash antes de o recurso ter se desenvolvido), por atenção à compatibilidade, ou mesmo por hábito.
Mas às vezes o uso de um vetor é a solução certa para determinado problema, e este tutorial do TheGeekStuff mostra com clareza, em 15 exemplos, como declarar, popular, exibir, inspecionar, buscar, aplicar expressões regulares e de outras formas manipular os arrays em Bash. (via thegeekstuff.com)
Vale lembrar que o Bash é o único interpretador shell com suporte a arrays (ou talvez tenha só mais 1, não lembro ao certo). Portanto, scripts que utilizarem este recurso não irão rodar em outros como o dash, utilizado como interpretador de scripts de boot do Ubuntu.
@Kurt, o zsh tbm suporta (aliás, o zsh é quase que um superset do bash: faz tudo que o bash faz e mais).
Mas programar em shell-script é igual em outras linguagens: tem gente que programa em C mas não segue o padrão ANSI (e o gcc aceita coisas fora do padrão), ou mesmo Javascript, HTML e CSS, onde vira e mexe alguém cria alguma coisa fora do padrão mas que posteriormente acaba indo pro “mainstream” e incorporado no padrão.
Por exemplo os arrays associativos são muito interessantes, e o bash 4.0 implementa, mas os outros shells não.
declare -A array
array["Chave 1"]=”valor 1″
echo ${array["Chave 1"]}
Uma coisa que seria legal é arrays com mais de uma dimensão no Bash. Ele permitiria fazer coisas como parsers JSON de páginas web (lynx), por exemplo, mas atualmente isto não pode ser feito de maneira “natural”, diretamente para variáveis nativas da linguagem. A maioria das linguagens de scripts de propósito geral (bem, que não é o bash :-)) possibilita isso.
Vale dar uma lida nesse comentário: http://www.thegeekstuff.com/2010/06/bash-array-tutorial/#comment-49041