Postagem em destaque

Criando bot do Telegram em Shell script com ShellBot

array

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"

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

2.2 Exemplo

Listando todos os elementos usando loop.

for fruta in "${str[@]}"
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

3.2 Exemplo

Imprimindo todos os elementos usando loop.

for fruta in "${str[*]}"
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

5.  ${#var[@]}

Retorna o total de elementos do array.

5.1 Exemplo

Imprimindo a quantidade de elementos.


echo ${#str[@]}
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

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

8.  ${var[@]: -N}

Retorna os elementos a partir dos últimos 'N' índices.

8.1 Exemplo

Imprimindo o último elemento.

echo ${str[@]: -1}
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

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


by. SHAMAN

Comentários

Contato

Nome

E-mail *

Mensagem *