- Gerar link
- X
- Outros aplicativos
Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Array quer dizer ‘arranjo’ que define uma estrutura de dados onde armazenamos uma coleção de elementos onde cada um dos elementos é identificado por , ou pelo menos um índice; também podemos dizer que é uma variável indexada ou vetor.
Durante nossa abordagem sobre o assunto você irá perceber que a sintaxe utilizada para imprimir valores por indexação é semelhante a sintaxe do recurso de expansão de variáveis e de simples aprendizado.
Para utilizar um array por indexação em Shell Script, não é obrigatório declarar a variável como tal, basta apenas atribuir um valor ao índice da variável e pronto; existem exceções como por exemplo, um array por referência que precisamos declarar explicitamente seu tipo, mas isso é algo que veremos mais a frente.
1. var[N]="exp"
Armazena 'exp' no 'N' índice.1.1 Exemplo
Armazendo string no índice '0'.
#Inicializando array
$ str[0]="Shell Script"
# Imprimindo valor
$ echo ${str[0]}
Shell Script X
1.2 Exemplo
Adicionando um segundo elemento.
$ str[1]="Linux"
# Imprimindo valor
$ echo ${str[1]}
Linux
1.3 Exemplo
Adicionando o elemento do índice 1 no índice 3.
$ str[3]="${str[1]}"
# Imprimindo valor
$ echo ${str[3]}
Linux
1.4 Exemplo
Imprimindo todos os elementos do array.
$ str[1]="Linux"
# Imprimindo valor
$ echo ${str[@]}
Shell Script Linux Linux
Observação: O meta caractere "@", refere-se a todos os índices do array.
Antes de continuar, vou construir um array que irei utilizar daqui pra frente.
str[0]="laranja"
str[1]="limão"
str[2]="goiaba"
str[3]="melancia"
str[1]="limão"
str[2]="goiaba"
str[3]="melancia"
2. ${var[@]}
Retorna todos os elementos do array em strings separadas.2.1 Exemplo
Imprimindo todos os elementos.
echo ${str[@]}
laranja limão goiaba melancia
laranja limão goiaba melancia
2.2 Exemplo
Listando todos os elementos usando loop.
for fruta in "${str[@]}"
do
echo $fruta
done
laranja
limão
goiaba
melancia
do
echo $fruta
done
laranja
limão
goiaba
melancia
3. ${var[*]}
Retorna todos os elementos do array em uma única string.3.1 Exemplo
Imprimindo todos os elementos.
echo ${str[*]}
laranja limão goiaba melancia
laranja limão goiaba melancia
3.2 Exemplo
Imprimindo todos os elementos usando loop.
for fruta in "${str[*]}"
do
echo $fruta
done
laranja limão goiaba melancia
do
echo $fruta
done
laranja limão goiaba melancia
Observação: Na aplicação do "*" com o loop, todas as strings forma retornadas em uma única linha, diferentemente do "@" que retornou uma string por linha.
4. ${!var[@]}
Retorna todos os índices do array.
4.1 Exemplo
Imprimindo os índices.
echo ${!str[@]}
0 1 2 3
0 1 2 3
5. ${#var[@]}
Retorna o total de elementos do array.5.1 Exemplo
Imprimindo a quantidade de elementos.
echo ${#str[@]}
4
4
6. ${var[@]:N}
Retorna os elementos do array a partir do índice 'N' até o último.6.1 Exemplo
Imprimindo do elemento limão até melancia.
echo ${str[@]:1}
limão goiaba melancia
limão goiaba melancia
7. ${var[@]:N:M}
Retorna os elementos do array a partir do índice 'N' com 'M' comprimento.7.1 Exemplo
Imprimindo somente 'limão' e 'goiaba'.
echo ${str[@]:1:2}
limão goiaba
limão goiaba
8. ${var[@]: -N}
Retorna os elementos a partir dos últimos 'N' índices.8.1 Exemplo
Imprimindo o último elemento.
echo ${str[@]: -1}
melancia
melancia
9. ${var[@]: -N:M}
Retorna os elementos a partir dos últimos 'N' índices com 'M' comprimento.9.1 Exemplo
Imprimindo o elemento 'limão'.
echo ${str[@]: -3:1}
limão
limão
Dicas:
Existem outras formas bem interessantes de criar um array, isso faz com que você explore variações e adapte de acordo com a sua necessidade.
Cria um array contendo nomes de arquivos do diretório corrente.
file=($(ls /home/shaman/desenhos -1))
echo ${file[@]}
the_unforgiven.mp3 numb.mp3 networking_ccna.pdf
echo ${file[@]}
the_unforgiven.mp3 numb.mp3 networking_ccna.pdf
Iniciando um array colocando os índices no bloco da váriavel.
frutas=([0]="laranja" [1]="Limão" [2]="melancia")
echo ${frutas[@]}
laranja limão melancia
echo ${frutas[@]}
laranja limão melancia
Semelhante a sintaxe acima, porém os elementos são armazenados automaticamente nos índices disponíveis.
frutas=("laranja" "limão" "melancia")
echo ${frutas[@]}
laranja limão melancia.
echo ${frutas[@]}
laranja limão melancia.
by. SHAMAN
Comentários
Postar um comentário