Transposição e Igualdade de Matrizes | Matemática com Python #6
Índice:
- Matrizes Bash
- Criando matrizes bash
- Criando matrizes indexadas numericamente
- Criando matrizes associativas
- Operações de matriz
- Elementos de referência
- Comprimento da matriz
- Loop pela matriz
- Adicione um novo elemento
- Excluir um elemento
- Conclusão
Matrizes são uma das estruturas de dados mais usadas e fundamentais. Você pode pensar em uma matriz como uma variável que pode armazenar várias variáveis dentro dela., abordaremos as matrizes Bash e explicaremos como usá-las nos seus scripts Bash.
Matrizes Bash
O Bash suporta tipos unidimensionais de matrizes indexadas e associativas. Matrizes numéricas são referenciadas usando números inteiros, e associativas são referenciadas usando seqüências de caracteres.
Matrizes indexadas numericamente podem ser acessadas a partir do final usando índices negativos, o índice de
-1
referência ao último elemento. Os índices não precisam ser contíguos.
Diferentemente da maioria das linguagens de programação, os elementos do array Bash não precisam ser do mesmo tipo de dados. Você pode criar uma matriz que contenha seqüências de caracteres e números.
O Bash não suporta matrizes multidimensionais e você não pode ter elementos de matriz que também sejam matrizes.
Não há limite para o número máximo de elementos que podem ser armazenados em uma matriz.
Criando matrizes bash
As matrizes no Bash podem ser inicializadas de maneiras diferentes.
Criando matrizes indexadas numericamente
As variáveis bash são sem tipo, qualquer variável pode ser usada como uma matriz indexada sem declará-la.
Para declarar explicitamente uma matriz, use o comando builtin:
declare -a array_name
Uma maneira de criar uma matriz indexada é usando o seguinte formulário:
array_name=value_1 array_name=value_2 array_name=value_n
Onde
index_*
é um número inteiro positivo.
Outra maneira de criar uma matriz numérica é especificar a lista dos elementos entre parênteses, separados por espaço vazio:
array_name=(element_1 element_2 element_N)
Quando a matriz é criada usando o formulário acima, a indexação começa em zero, ou seja, o primeiro elemento tem um índice de
0
.
Criando matrizes associativas
Diferente da indexada numericamente, as matrizes associativas devem ser declaradas antes de poderem ser usadas.
Para declarar uma matriz associativa, use
declare
builtin com a opção
-A
(maiúscula):
declare -A array_name
Matrizes associativas podem ser criadas usando o seguinte formulário:
declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz
Onde
index_*
pode ser qualquer string.
Você também pode criar uma matriz associativa usando o formulário abaixo:
declare -A array_name array_name=(=value_foo =value_bar =value_xyz)
Operações de matriz
A sintaxe das matrizes Bash pode parecer um pouco estranha no começo, mas fará mais sentido depois que você ler este artigo.
Elementos de referência
Para fazer referência a um único elemento, você precisa conhecer o índice do elemento.
Qualquer elemento pode ser referenciado usando a seguinte sintaxe:
${array_name}
A sintaxe para acessar um elemento da matriz é semelhante à sintaxe da maioria das linguagens de programação. Os colchetes
${}
são necessários para evitar os operadores de expansão de nome de arquivo do shell.
Vamos imprimir o elemento com o índice
1
:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}
Helium
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium
A única diferença entre
@
e
*
é quando o formulário
${my_array}
está entre aspas duplas. Nesse caso,
*
expande para uma única palavra em que os elementos da matriz são separados por espaço.
@
expande cada elemento da matriz para uma palavra separada. Isso é especialmente importante ao usar o formulário para analfabetos através dos elementos da matriz.
Para imprimir as chaves da matriz, adicione o
!
operador antes do nome da matriz:
${!array_name}
Aqui está um exemplo:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"
Comprimento da matriz
Para obter o comprimento de uma matriz, use o seguinte formulário:
${#array_name}
A sintaxe é a mesma que quando se faz referência a todos os elementos com adição do caractere
#
antes do nome da matriz.
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}
Loop pela matriz
A maneira mais comum de iterar sobre cada item em uma matriz é usando o loop for:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done
O código acima irá percorrer a matriz e imprimir cada elemento em uma nova linha:
Hydrogen Helium Lithium Beryllium
Aqui está um exemplo de como imprimir todas as chaves e valores:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Outra maneira de fazer um loop através de uma matriz é obter o comprimento da matriz e usar o loop de
C style
:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Adicione um novo elemento
Para adicionar um novo elemento a uma matriz bash e especificar seu índice, use o seguinte formulário:
my_array="New Element"
Aqui está um exemplo:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Aluminum
Outra maneira de adicionar um novo elemento a uma matriz sem especificar o índice é usando o operador
+=
. Você pode adicionar um ou vários elementos:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Cobalt Nickel
Excluir um elemento
Para excluir um único elemento, você precisará conhecer o índice do elemento. Um elemento pode ser removido usando o comando
unset
:
unset my_array
Vamos ver um exemplo:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"
Conclusão
Explicamos como criar matrizes indexadas e associativas. Também mostramos como iterar pelas matrizes, calcular o comprimento da matriz e adicionar e remover elementos.
terminal bashComo executar o Bash no Ubuntu no Windows 10
Ativar o Windows Subsystem para Linux permitirá executar o Bash no Ubuntu no Windows 10, scripts Bash , Ferramentas de linha de comando do Linux, primeiras ferramentas do Linux.
Bash para loop
Existem três construções básicas de loop no script Bash, para loop, enquanto loop e até. Neste tutorial, abordaremos o básico dos loops for no Bash, bem como as instruções break e continue para alterar o fluxo de um loop.
Bash: anexar ao arquivo
No Linux, existem várias maneiras de acrescentar texto a um arquivo. Este artigo explica alguns deles.







