Bash Array – Como declarar um array de strings em um script Bash
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:
- Dê um nome ao seu array
- Siga esse nome de variável com um sinal de igual. O sinal de igual não deve ter espaços ao redor
- Coloque a matriz entre parênteses (não colchetes como em JavaScript)
- 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 forEach
em 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 for
loop 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 myArray
variá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.