- Definir um array por índice
- Defina uma matriz com vários valores
- Definir uma matriz associativa
- Conte os valores da matriz
- Leia os valores da matriz por loop
- Leia os valores particulares da matriz
- Insira os valores da matriz
- Ler o conteúdo de um arquivo no array
- Combine os valores da matriz
- Modifique os valores da matriz
- Remova os valores da matriz
- Pesquise e substitua os valores da matriz
- Use um array como argumento de função
- Retornar o array da função
- Deixe o array vazio
Definir um array por índice
O método de declarar um array mencionando os índices numéricos sequenciais ou não sequenciais é mostrado no script a seguir. Este tipo de array é chamado de array numérico. Aqui, o array “$books” é criado definindo três índices sequenciais e o array “$products” é criado definindo quatro índices não sequenciais. Todos os valores de ambos os arrays são impressos usando a função “printf”.
#!/bin/bash
#Define o índice do array em ordem sequencial
livros [ 0 ] = 'Aprendendo o bash Shell'
livros [ 1 ] = ‘Operações de segurança cibernética com bash’
livros [ 2 ] = 'Dicas profissionais da linha de comando Bash'
eco 'Todos os valores do primeiro array:'
imprimir '%s\n' ' ${livros[@]} '
#Define o índice do array em ordem não sequencial
produtos [ 10 ] = 'Caneta'
produtos [ 5 ] = 'Lápis'
produtos [ 9 ] = 'Regras'
produtos [ 4 ] = 'Papel tamanho A4'
eco
eco 'Todos os valores da segunda matriz:'
imprimir '%s\n' ' ${produtos[@]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores de ambas as matrizes são impressos na saída. A ordem dos índices é mantida no momento da impressão para a matriz de índices não sequenciais:
Defina uma matriz com vários valores
Uma matriz numérica com vários valores pode ser declarada usando o comando “declare” com a opção -a ou sem usar o comando “declare”. No script a seguir, o primeiro array é declarado usando o comando “declare” e o segundo array é criado sem usar o comando “declare”.
#!/bin/bash
#Declare um array numérico com a palavra-chave 'declare'
declarar -a nomes = ( 'Michael' 'Davi' 'Alexandre' 'Tomás' 'Roberto' 'Ricardo' )
#Imprime os valores do array
eco 'Todos os valores do primeiro array:'
imprimir '%s\n' ' ${nomes[@]} '
#Declare um array numérico sem a palavra-chave 'declare'
livros = ( 'Tutoriais de script de shell' 'Bish Bash Bosh!' 'Aprenda Bash rapidamente' )
#Adicionar nova linha
eco
#Imprime os valores do array
eco 'Todos os valores da segunda matriz:'
imprimir '%s\n' ' ${livros[@]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores de ambas as matrizes são impressos aqui:
Definir uma matriz associativa
A matriz que contém o valor da string como índice é chamada de matriz associativa. A opção -A é usada com o comando “declare” no Bash para criar um array Bash associativo. No script a seguir, o primeiro array associativo é declarado mencionando os índices separadamente e o segundo array é declarado mencionando todos os pares chave-valor no momento da declaração do array.
#!/bin/bash#Declara uma variável de array associativa sem valor
declarar -A funcionário
#Atribuir valor separadamente definindo o índice
funcionário [ 'eu ia' ] = '78564'
funcionário [ 'nome' ] = ‘Ator Disponível’
funcionário [ 'publicar' ] = 'CEO'
funcionário [ 'salário' ] = 300.000
#Imprime dois valores do array
eco 'ID do Empregado: ${funcionário[id]} '
eco 'Nome do empregado: ${funcionário[nome]} '
#Declare um array associativo com valores
declarar -A curso = ( [ código ] = 'CSE-206' [ nome ] = 'Programação Orientada a Objetos' [ Hora extra ] = 2,0 )
#Adicionar nova linha
eco
#Imprime dois valores de array do segundo array
eco 'Nome do curso: ${curso[nome]} '
eco 'Hora extra: ${curso[crédito_hora]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores específicos da matriz associativa são impressos aqui mencionando a chave ou o valor do índice:
Conte os valores da matriz
O método de contagem do total de elementos da matriz numérica e da matriz associativa é mostrado no seguinte script:
#!/bin/bash#Declara um array numérico
declarar -a nomes = ( 'Michael' 'Davi' 'Alexandre' 'Tomás' 'Roberto' 'Ricardo' ) ;
eco 'O comprimento da matriz numérica é ${#nomes[@]} '
#Declara um array associativo
declarar -A curso = ( [ código ] = 'CSE-206' [ nome ] = 'Programação Orientada a Objetos' [ Hora extra ] = 2,0 )
eco 'O comprimento da matriz associativa é ${#curso[@]} '
Saída :
A seguinte saída aparece após a execução do script. O comprimento da matriz numérica e associativa é impresso aqui:
Leia os valores da matriz por loop
O método de leitura de todos os valores de um array numérico e um array associativo usando o loop “for” é mostrado no seguinte script:
#!/bin/bash#Declara um array numérico
declarar -a livros = ( 'Tutoriais de script Shell' 'Bish Bash Bosh!' 'Aprenda Bash rapidamente' )
#Imprime os valores do array numérico
eco 'Os valores da matriz numérica são:'
para em em ' ${livros[@]} '
fazer
eco ' $ em '
feito
eco
#Declare um array associativo com valores
declarar -A clientes = (
[ eu ia ] = 'H-5623'
[ nome ] = 'Senhor. Ahnaf'
[ endereço ] = '6/A, Dhanmondi, Dhaka.'
[ telefone ] = '+8801975642312' )
#Imprime os valores do array associativo
eco 'Os valores da matriz associativa são:'
para k em ' ${!clientes[@]} '
fazer
eco ' $ k => ${clientes[$k]} '
feito
Saída :
A seguinte saída aparece após a execução do script. Aqui, os valores da matriz numérica e os pares de valores-chave da matriz associativa são impressos na saída:
Leia a faixa específica de valores da matriz
Os valores da matriz de um intervalo específico de índices são mostrados no script a seguir. No script, uma matriz numérica de quatro elementos é definida. Dois valores de array do segundo índice do array são impressos posteriormente.
#!/bin/bash#Declara um array numérico
declarar -a bolos = ( 'Bolo de chocolate' 'Bolo de baunilha' 'Bolo de veludo vermelho' 'bolo de morango' )
#Imprime os valores específicos do array
eco 'O segundo e o terceiro elementos dos valores da matriz são:'
imprimir '%s\n' ' ${bolos[@]:1:2} '
Saída :
A seguinte saída aparece após a execução do script. O segundo e terceiro valores do array são “Vanilla Cake” e “Red Velvet Cake” que são impressos na saída:
Insira os valores da matriz
O método de adicionar vários valores no final da matriz é mostrado no script a seguir. O array principal que é “$books” contém três elementos e dois elementos são adicionados no final do array “$books”.
#!/bin/bash#Declara um array numérico
declarar -a livros = ( 'Tutoriais de script Shell' 'Bish Bash Bosh!' 'Aprenda Bash rapidamente' )
#Imprime os valores do array antes de inserir
eco 'Valores da matriz:'
imprimir '%s\n' ' ${livros[@]} '
eco
livros = ( ' ${livros[@]} ' 'Bíblia de Linha de Comando Linux e Shell Scripting' 'Guia avançado de script Bash por Mendel Cooper' )
#Imprime os valores do array após inserir
eco 'Valores da matriz após inserir dois valores:'
imprimir '%s\n' ' ${livros[@]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores do array antes e depois da inserção de novos valores são impressos na saída:
Leia o conteúdo do arquivo na matriz
Crie um arquivo de texto chamado “fruits.txt” com o seguinte conteúdo para testar o script deste exemplo:
frutas.txt
mangaJaca
Abacaxi
Laranja
Banana
No script a seguir, o conteúdo de um arquivo é armazenado em um array chamado “$data”. Aqui, cada linha do arquivo é armazenada como cada elemento do array. A seguir, os valores do array são impressos.
#!/bin/bash#Leia o nome do arquivo do usuário
ler -p 'Digite o nome do arquivo:' nome do arquivo
se [ -f $nome do arquivo ]
então
#Leia o conteúdo do arquivo em um array'
dados = ( ` gato ' $nome do arquivo ' ` )
eco 'O conteúdo do arquivo é fornecido abaixo:'
#Leia o arquivo linha por linha
para linha em ' ${dados[@]} '
fazer
eco $ linha
feito
ser
Saída :
A seguinte saída aparece após a execução do script. A saída mostrada pelo comando “cat” e a saída do script são semelhantes porque o mesmo arquivo é acessado pelo comando “cat” e pelo script:
Combine os valores da matriz
Um novo array é criado combinando os valores de vários arrays. No script a seguir, duas matrizes numéricas de strings são definidas. Então, um novo array é criado combinando os valores desses arrays.
#!/bin/bash#Declara o primeiro array
declarar -a nomeLista1 = ( 'Michael' 'Davi' 'Alexandre' 'Tomás' )
eco 'Os primeiros valores da matriz são:'
imprimir '%s,' ${nomeLista1[@]}
eco
#Declara o segundo array
declarar -a nomeLista2 = ( 'Roberto' 'Ricardo' )
eco 'Os valores da segunda matriz são:'
imprimir '%s,' ${nomeLista2[@]}
eco
#Crie um novo array combinando dois arrays
matriz_combinada = ( ' ${nomeLista1[@]} ' ' ${nomeLista2[@]} ' )
eco 'Os valores da matriz combinada são:'
imprimir '%s,' ${matriz_combinada[@]}
eco
Saída :
A seguinte saída aparece após a execução do script. Aqui, os valores de três arrays são impressos na saída. A terceira matriz contém todos os valores da primeira e da segunda matriz:
Modifique os valores da matriz
O método de atualização de um ou mais valores do array mencionando o índice é mostrado no seguinte script:
#!/bin/bash#Declara o primeiro array
declarar -a lista de nomes = ( 'Michael' 'Davi' 'Alexandre' 'Tomás' )
eco 'Valores da matriz:'
imprimir '%s,' ${nomeLista[@]}
eco
#Atualiza o segundo valor do array
lista de nomes [ 1 ] = 'Roberto'
eco 'Valores da matriz após atualização:'
imprimir '%s,' ${nomeLista[@]}
eco
Saída :
A seguinte saída aparece após a execução do script. Os valores do array principal e dos arrays atualizados são impressos na saída:
Remova os valores da matriz
O comando “unset” é usado para remover um elemento específico ou todos os elementos do array. No script a seguir, o segundo elemento da matriz é removido.
#!/bin/bash#Declara um array numérico
declarar -a livros = ( 'Tutoriais de script Shell' 'Bish Bash Bosh!' 'Aprenda Bash rapidamente' )
#Imprime os valores do array antes de remover
eco 'Valores da matriz:'
imprimir '%s\n' ' ${livros[@]} '
eco
#Remova o segundo elemento
desarmar livros [ 1 ]
#Imprime os valores do array após remover
eco 'Valores da matriz após remover o segundo valor:'
imprimir '%s\n' ' ${livros[@]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores do array principal e os valores do array após a remoção de um valor são impressos na saída:
Pesquise e substitua os valores da matriz
No script a seguir, o valor específico do array é substituído por outro valor se o valor de pesquisa definido no padrão corresponder a qualquer valor do array “$names”.
#!/bin/bash#Declara o primeiro array
declarar -a nomes = ( 'Michael' 'Davi' 'Alexandre' 'Tomás' )
#Imprime os valores originais do array
eco 'Valores da matriz original:'
imprimir '%s\n' ' ${nomes[@]} '
#Gerar string após substituir os valores do array
array_atualizado = ${nomes[@]/Alexander/Richard}
#Imprime os valores do array após substituir
eco 'Valores da matriz após substituição:'
imprimir '%s\n' ' ${matriz_atualizada[@]} '
Saída :
A seguinte saída aparece após a execução do script. Os valores do array principal e os valores do array após a substituição de um valor são impressos na saída:
Use um array como argumento de função
No script a seguir, uma variável de array é passada como argumento da função e os valores desse array são impressos posteriormente.
#!/bin/bash#Declara um array de números
declarar -a números = ( 10 6 Quatro cinco 13 8 )
#Define uma função que receberá um valor de argumento
função ( )
{
#Leia o primeiro argumento
números = US$ 1
#Imprime os valores do array
eco 'Valores da matriz:'
imprimir '%d\n' ' ${números[@]} '
}
#Chama a função com o array como argumento
função ' ${números[@]} '
Saída :
A seguinte saída aparece após a execução do script:
Retornar um array da função
No script a seguir, a função é chamada com quatro argumentos numéricos. Um array é criado com os valores dos argumentos e esse array é retornado da função para o chamador.
#!/bin/bash#Defina uma função que leia quatro valores de argumentos
função ( )
{
#Leia os valores dos argumentos
números = ( US$ 1 US$ 2 US$ 3 US$ 4 )
#Retorna a matriz
eco ' ${números[@]} '
}
#Chame a função com três argumentos
valor_retorno =$ ( função 78 Quatro cinco 90 23 )
#Armazena o valor de retorno em um array
ler -a num <<< $return_val
#Imprime os valores do array retornado
eco 'Os valores da matriz são:'
para em em ' ${num[@]} '
fazer
eco ' $ em '
feito
Saída :
A seguinte saída aparece após a execução do script:
Deixe o array vazio
O script a seguir mostra o método de esvaziar um array usando o comando “unset”. O número total de valores do array é impresso antes e depois de esvaziar o array.
#!/bin/bash#Declara um array de números
declarar -a números = ( 10 6 Quatro cinco 13 80 )
eco 'Números de valores da matriz: ${#números[@]} '
#Deixa o array vazio
desarmar números
eco 'Número de valores do array após esvaziar o array: ${#números[@]} '
Saída :
A seguinte saída aparece após a execução do script. O número de elementos do array tornou-se 0 após esvaziar o array:
Conclusão
Diferentes métodos de declaração, acesso, modificação e remoção de variáveis de array no script Bash são mostrados neste tutorial usando 15 exemplos simples. Esperamos que este tutorial ajude os usuários do Bash a conhecer detalhadamente os usos do array Bash.