Há muitas razões pelas quais alguém pode querer restaurar uma matriz de bash:
Você pode acreditar que Bash perde a capacidade de retornar matrizes de funções. No entanto, isso não está exatamente correto. É possível mover a matriz resultante para um método por referência, obtendo dicas de desenvolvedores de C/C ++. Essa estratégia permite que o método continue livre de referências a uma variável global. O artigo a seguir mostra instâncias claras deste caso.
Exemplo 1: retornando uma matriz
Faça login no seu sistema Linux e abra o terminal de comando para prosseguir. Vamos criar um arquivo bash chamado “script.sh ”usando o tocar comando para retornar a matriz usando a função Bash. O script é o seguinte:
$ toque script.sh
Você pode ver o arquivo recém -criado no Lar diretório. Abra este arquivo e anote o código anexado nele como está. Aqui, estamos tentando criar uma matriz associativa através de um argumento em um método de um passe de lista.
Inicialmente, criamos a função foo ().
Dentro deste programa, removemos o termo "declarar", que é um comando pré-configurado de bash que nos permite alterar ou personalizar os atributos, os métodos da concha manchados para as variáveis e demonstramos os valores desses atributos dentro do extensão do nosso terminal de comando da Shell. Além disso, pode ser usado para definir uma variável longa. Por fim, é usado para definir as variáveis.
Adicionamos o valor "Fooval" à matriz "arr".
A palavra-chave "-a" é usada para criar o Nomes matriz associativa se suportado. Devemos usar a lista/matriz como uma variável global, o que implica que apenas um método, não um script, pode executar esta ação.
Também criamos outra matriz, chamada "Myarr", para uso como referência. Bash permite que o nome de uma variável relativa arr seja diferente do nome da variável relativa Myarr.
Depois disso, na oitava linha, passamos a matriz "Myarr" para a festa foo () função como uma referência.
No passado, usamos o loop "para" para imprimir as matrizes "arr" e "myarr" para o foo () função.
Agora vamos verificar o resultado deste código. Execute o comando bash para executar o código acima. Você pode ver que a matriz foi devolvida à função e depois impressa.
$ script.sh
Exemplo 2: retornando outra matriz
Vejamos outro exemplo de retorno de matrizes para uma função. Abra seu terminal de comando e crie um novo arquivo chamado “OpenVPN.log ”usando o tocar comando, como segue:
$ touch OpenVPN.registro
Agora, abra o “OpenVPN.Log ”arquivo e escreva o seguinte texto neste arquivo, como mostrado. Salve este arquivo e feche -o.
Novamente, abra o shell de comando e crie outro arquivo chamado “Script.sh, "usando o tocar comando para adicionar o script bash ao arquivo.
$ toque script.sh
Em seguida, abra o “script.Arquivo SH ”e anexa o seguinte código neste arquivo AS-IS. Salvar e fechar este arquivo. Este script usará um método que lê valores/strings de um documento e retornará uma matriz:
Vamos agora dar uma olhada detalhada no funcionamento deste script.
Vamos agora verificar a saída deste script Bash. Execute o comando bash para executar o “script.arquivo sh ”. Como você pode ver, a primeira declaração de eco imprimirá todo o texto do “OpenVPN.arquivo de log ", que foi salvo na matriz" clientes "como uma linha. A segunda declaração de eco exibirá a mensagem da string. A terceira declaração de eco exibirá a matriz de "clientes" em forma indexada, pois acabou de ser convertida. O quarto vai exibir uma mensagem novamente. O último exibirá o conteúdo da matriz de "clientes" individualmente.
Conclusão
Este artigo mostrou como retornar matrizes (especialmente matrizes associativas) a uma função usando o comando "declarar" com dois exemplos. Espero que este artigo tenha ajudado você a entender melhor este tópico.