Hay muchas razones por las cuales uno podría querer restaurar una matriz de bash:
Puede creer que Bash pierde la capacidad de devolver las matrices de funciones. Sin embargo, eso no es exactamente correcto. Es posible mover la matriz resultante a un método por referencia, tomando señales de los desarrolladores de C/C ++. Dicha estrategia permite que el método continúe libre de referencias hacia una variable global. El siguiente artículo muestra instancias claras de este caso.
Ejemplo 1: devolver una matriz
Inicie sesión en su sistema Linux y abra el terminal de comando para continuar. Crearemos un archivo bash llamado "script.sh ”usando el tocar Comando para devolver la matriz usando la función bash. El guión es el siguiente:
$ touch script.mierda
Puede ver el archivo recién creado en el Hogar directorio. Abra este archivo y escriba el código adjunto en él como es. Aquí, estamos intentando crear una matriz asociativa a través de un argumento en un método de un pase de lista.
Inicialmente, hemos creado la función foo ().
Dentro de este programa, hemos eliminado el término "declarar", que es un comando bash preconfigurado que nos permite cambiar o personalizar los atributos, los métodos de la carcasa manchados a las variables y demostrar los valores de estos atributos dentro de los atributos dentro del el tramo de comando de la shell. Además, se puede usar para definir una variable larga. Por último, se usa para definir las variables.
Hemos agregado el valor "fooval" a la matriz "ARR".
La palabra clave "-a" se usa para crear el Nombres Matriz asociativa si se apoya. Debemos usar la lista/matriz como una variable global, lo que implica que solo un método, no un script, puede realizar esta acción.
También hemos creado otra matriz, llamada "Myarr", para su uso como referencia. Bash permite que el nombre de una variable relativa ARR sea diferente al nombre de la variable relativa myarr.
Después de eso, en la octava línea, hemos pasado la matriz "myarr" a la fiesta foo () funcionar como referencia.
En el pasado, usamos el bucle "para" para imprimir las matrices "ARR" y "Myarr" a la foo () función.
Ahora verificaremos el resultado de este código. Ejecutar el comando bash para ejecutar el código anterior. Puede ver que la matriz ha sido devuelta a la función y luego impresa.
$ Bash Script.mierda
Ejemplo 2: devolver otra matriz
Veamos otro ejemplo de devolución de matrices a una función. Abra su terminal de comando y cree un nuevo archivo llamado "OpenVPN.registro ”usando el tocar Comando, como sigue:
$ touch openvpn.registro
Ahora, abra el "OpenVPN.registrar el archivo y escribir el siguiente texto en este archivo, como se muestra. Guardar este archivo y cerrarlo.
Nuevamente, abra el shell de comando y cree otro archivo llamado "script.sh ", usando el tocar comandar para agregar el script bash al archivo.
$ touch script.mierda
A continuación, abra el "Script.archivo sh "y agregar el siguiente código en este archivo como es. Guarde y cierre este archivo. Este script utilizará un método que lea valores/cadenas de un documento y devuelve una matriz:
Veamos ahora un vistazo detallado al funcionamiento de este script.
Vamos a verificar ahora la salida de este script bash. Ejecute el comando bash para ejecutar el "script.archivo sh ". Como puede ver, la primera declaración de eco imprimirá todo el texto del "OpenVPN.Archivo de registro ", que se ha guardado en la matriz de" clientes "como una línea. La segunda instrucción ECHO mostrará el mensaje de cadena. La tercera declaración de eco mostrará la matriz de "clientes" en forma indexada, ya que se acaba de convertir. El cuarto mostrará un mensaje nuevamente. El final mostrará el contenido de la matriz de "clientes" individualmente.
Conclusión
Este artículo le mostró cómo devolver matrices (especialmente matrices asociativas) a una función utilizando el comando "declarar" incorporado con dos ejemplos. Espero que este artículo te ayude a comprender mejor este tema.