Introdução à Matriz no Unix

Matriz é uma estrutura de dados que contém um grupo de elementos típicos do mesmo tipo de dados, como string, número inteiro, float etc. A estrutura de dados de matrizes também está disponível no Unix.

  • Matriz no Unix: é a coleção de elementos que podem ou não ser do mesmo tipo de dados.
  • Índice: a matriz é baseada em zero, o que significa que os elementos da matriz são referenciados pelo índice que inicia o zero.
  • Tamanho: não há limite máximo para o tamanho da matriz

Sintaxe da matriz no Unix

Existem diferentes maneiras de formar uma matriz no script de shell. Vamos analisar cada um deles em detalhes:

1. Declaração Indireta: Aqui o valor é atribuído para um índice específico em movimento. Exemplo do que é mencionado abaixo.

Sintaxe:

array_name(index) = value

2. Declaração explícita: primeiro, a matriz é declarada e depois os valores são atribuídos a ela. Declarar é uma palavra-chave incorporada e -a é uma opção de leitura incorporada que permite ler e atribuir valores.

Sintaxe:

declare -a array_name

3. Atribuição composta: Aqui, a matriz é declarada com vários valores por vez.

Sintaxe:

array_name = (value1 value2 value3 . . . valueN)

Ou

array_name = ((0)=value1, (1)=value2, (2)=value3..)

Aqui, o índice é opcional se o índice não for fornecido, o valor é atribuído ao último índice mais um

Como o Array funciona no Unix?

Nós aprendemos as várias maneiras de criar uma matriz no Unix, vamos agora avançar e ver várias operações que podem ser executadas na matriz Unix.

1. Vamos criar a matriz de nomes

2. Para acessar todos os elementos da matriz, use (*) ou (@)

Código:

echo $(first_name(*))
echo $(first_name(@))

Nota: o comando echo é um comando interno do Unix usado para exibir o texto ou a cadeia de caracteres que é passada como argumento para o comando. A sintaxe de 'eco' é mencionada abaixo.

Sintaxe:

echo (options) (arguments)

3. Para acessar qualquer elemento específico da string usando seu índice.

Código:

echo $(first_name(0))
echo $(first_name(1))
echo $(first_name(2))

Resultado:

Nota: () chaves são usadas para se referir ao conteúdo da matriz.

4. Para imprimir os elementos em um intervalo. A sintaxe para o mesmo é a seguinte:

Sintaxe:

echo $array_name(which element):starting_index:count_element)

Vamos nos familiarizar com o mesmo.

Código:

echo $(first_name(@):0:2)
echo $(first_name(@):2:3)
echo $(first_name(0):1:2)

Resultado:

@ - refere-se a todos os elementos da matriz
No comando echo $ (first_name (@): 0: 2)
@ considere todos os elementos da matriz. 0 - significa começar com este índice específico e 2 exibe o número de elementos a partir do ponto inicial
2 exibe vários elementos desde o ponto inicial

Nesse comando, echo $ (first_name (0): 1: 2)
0 - considere o elemento da matriz. 1 - é o ponto de partida e 2 - é a contagem do número de elementos do ponto de partida

5. Para obter o tamanho da matriz

Código:

echo $(#first_name(@))
or
echo $(#first_name(*))

Resultado:


Nota: # é usado para encontrar o comprimento de um elemento específico de uma matriz.

6. Para encontrar o comprimento de um elemento específico de uma matriz

Código:

echo $(#first_name(0))

Saída :

7. Para obter o índice da matriz para usar o comando abaixo.

Código:

echo $(!first_name(@))

Resultado:


Nota :! é usado para obter o índice da matriz.

8. Para excluir a matriz no script, o comando unset é usado. É um comando interno para destruir uma matriz ou qualquer elemento da matriz

Sintaxe:

unset array_name

Código:

unset first_name

9. Para excluir um elemento em qualquer índice específico

unset first_name(2)

Isso excluirá o elemento no índice 2.

10. Para procurar um padrão específico na matriz.

Código:

echo $(first_name(@)/*(aA)*/)

Resultado:

Aqui, first_name (@): refere-se a todos os elementos da matriz
/ padrão a ser pesquisado /: é o padrão que deve ser pesquisado na matriz ou em seu elemento.
Ele retornará 1 se a correspondência for encontrada e 0 se nenhuma correspondência for encontrada.

11. Para procurar um padrão específico e substituí-lo na matriz fornecida.

Código:

echo $(first_name(@)//a/A)

first_name (@): considere todos os elementos da matriz
// padrão a ser pesquisado / sequência de substituição /: pesquisa e sequência de substituição

Resultado:

first_name (2): pesquise e substitua operações a serem executadas no elemento pelo índice 2.

Durante a operação de pesquisa e substituição, não há alterações feitas no valor original da matriz. Retorna um novo valor que pode ser armazenado na mesma ou em diferentes variáveis.

12. Para executar uma operação nos elementos de uma matriz, podemos usar os Loops. Como qualquer outra linguagem de programação, o Bourne shell suporta dois tipos de loops, isto é, para loop e while. Vejamos um exemplo para iterar sobre uma matriz usando o loop for.

Código:

Arr = (1 2 3 4 5)
for i in “$(Arr(@))”
do
echo $i
done

Saída :

Da mesma forma, você pode iterar sobre uma matriz usando um loop while também.

Lembre-se de que existem vários tipos diferentes de shells disponíveis no Unix, como Bash, K shell, Bourne shell, etc. O Shell não é mais que uma interface para sistemas Unix com diferentes conjuntos de comandos e funções. Portanto, com base em vários tipos de shell, existem diferentes sintaxes associadas ao array e suas operações, com uma ligeira variação na sintaxe dos comandos discutidos acima.

O Bash Shell permite as operações da matriz nas variáveis ​​também sem que as variáveis ​​sejam declaradas explicitamente como uma matriz. Vejamos o exemplo para entender melhor a afirmação acima.

Código:

String_variable = India is a democratic country
echo “$(string(0))”

Resultado:

Conclusão

Basicamente, array é uma coleção de itens armazenados em um local de memória contíguo. O objetivo por trás da formação de uma matriz é armazenar vários itens do mesmo tipo juntamente com o mesmo ou diferentes tipos de dados. Em um cenário prático, a razão pela qual a estrutura do array fica baixa é devido à falta de compatibilidade com várias estruturas complexas e shell.

Artigos recomendados

Este é um guia para Array no Unix. Aqui discutimos a sintaxe e o funcionamento da matriz no Unix, juntamente com vários exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais -

  1. Servidor Proxy Linux
  2. Tipos de shells no Linux
  3. Criar usuário no Linux
  4. Sistema de arquivos Unix
  5. Guia para loop for em scripts de shell