2 min read

Bash Array – Como declarar um array de strings em um script Bash

Bash Array – Como declarar um array de strings em um script Bash
Photo by Gabriel Heinzer / Unsplash

Os scripts Bash oferecem uma maneira conveniente de automatizar tarefas de linha de comando.

Com o Bash, você pode fazer muitas das mesmas coisas que faria em outras linguagens de script ou programação. Você pode criar e usar variáveis, executar loops, usar lógica condicional e armazenar dados em arrays.

Embora a funcionalidade possa ser muito familiar, a sintaxe do Bash pode ser complicada. Neste artigo, você aprenderá como declarar arrays e, em seguida, como usá-los em seu código.

Como declarar um array no Bash

Declarar um array no Bash é fácil, mas preste atenção na sintaxe. Se você está acostumado a programar em outras linguagens, o código pode parecer familiar, mas existem diferenças sutis que são fáceis de perder.

Para declarar sua matriz, siga estas etapas:

  1. Dê um nome ao seu array
  2. Siga esse nome de variável com um sinal de igual. O sinal de igual não deve ter espaços ao redor
  3. Coloque a matriz entre parênteses (não colchetes como em JavaScript)
  4. Digite suas strings usando aspas, mas sem vírgulas entre elas

Sua declaração de array ficará mais ou menos assim:

myArray=("cat" "dog" "mouse" "frog)

É isso! É simples assim.

Como acessar um array no Bash

Existem algumas maneiras diferentes de percorrer seu array. Você pode percorrer os próprios elementos ou percorrer os índices.

Como fazer um loop através de elementos de matriz

Para percorrer os elementos da matriz, seu código precisará ser algo assim:

for str in ${myArray[@]}; do
  echo $str
done

Para quebrar isso: isso é um pouco como usar forEachem JavaScript. Para cada string (str) no array (myArray), imprima essa string.

A saída deste loop é assim:

cat
dog
mouse
frog

Nota : O @símbolo entre colchetes indica que você está percorrendo todos os elementos da matriz. Se você deixar isso de fora e apenas escrever for str in ${myArray}, apenas a primeira string na matriz seria impressa.

Como fazer um loop através de índices de matriz

Alternativamente, você pode percorrer os índices da matriz. Isso é como um forloop em JavaScript e é útil quando você deseja acessar o índice de cada elemento.

Para usar esse método, seu código precisará se parecer com o seguinte:

for i in ${!myArray[@]}; do
  echo "element $i is ${myArray[$i]}"
done

A saída ficará assim:

element 0 is cat
element 1 is dog
element 2 is mouse
element 3 is frog

Nota : O ponto de exclamação no início da myArrayvariável indica que você está acessando os índices do array e não os próprios elementos. Isso pode ser confuso se você estiver acostumado com o ponto de exclamação indicando negação, então preste muita atenção a isso.

Outra nota : Bash normalmente não requer chaves para variáveis, mas sim para arrays. Então você notará que quando você faz referência a um array, você faz isso com a sintaxe ${myArray}, mas quando você faz referência a uma string ou número, você simplesmente usa um cifrão: $i.

Conclusão

Os scripts Bash são úteis para criar linha de comando automatizado, e os arrays são uma ótima ferramenta que você pode usar para armazenar vários dados.

Declará-los e usá-los não é difícil, mas é diferente de outros idiomas, portanto, preste bastante atenção para evitar cometer erros.