GNU/Linux >> Tutoriales Linux >  >> Linux

bash:establece la variable env de la matriz y falla la desreferenciación de cualquier script de shell

Lea el manual fino, sección "errores".

Es posible que las variables de matriz (todavía) no se exporten.

Sin embargo, no sé si muchos consideran que esto es un error real. Otros shells que admiten matrices de estilo ksh tampoco permiten exportarlos.

Puede pasar definiciones de matriz con bastante facilidad, a través de parámetros o variables o el entorno. Sin embargo, no suele ser muy útil.

function f {
    unset -v "$2"
    typeset "$2"
    eval "${!1}"
    typeset -p "$2"
}

typeset -a a=(a b c)
myArr=$(typeset -p a) f myArr a

El malentendido es pensar que las variables de entorno solo son utilizadas por shells, no lo son. No se pueden exportar atributos al bloque de entorno, incluidos los de solo lectura, enteros y matrices. Las variables de entorno pueden leerse en cualquier lenguaje, C, C++, Perl, Java, Python, PHP, etc. También existen en Windows.

Entonces, ¿cómo podría otro idioma admitir atributos específicos de Bash? Todas las variables de entorno se convierten en cadenas, excepto en Bash, donde los valores de matriz no se exportan en absoluto.

Korn shell exportará solo el primer elemento. ksh93 también hace algo de exec explotación para preservar los atributos variables exportados a los hijos de shell Korn.

Por cierto, se considera una mala práctica usar MAYÚSCULAS para los nombres de las variables, ya que podrían colisionar con las que usa el shell. Además, en Bash 3, el nombre STRING tiene problemas cuando se exporta (corregido en Bash 4).


Linux
  1. ¿Cómo ftp y descargo archivos desde un UNIX Shell Script?

  2. Cancelación de un script de shell si algún comando devuelve un valor distinto de cero

  3. Script bash:usar el comando de script desde un script bash para iniciar sesión

  4. Abra Vim desde dentro de un script de shell Bash

  5. Alcance variable para scripts y funciones bash shell en el script

¿Script de shell con función y parámetro como variables?

Bash Beginner Series #2:Comprender las variables en Bash Shell Scripting

Tutorial de variables Bash:6 ejemplos prácticos de variables locales y globales de Bash

Formato de fecha y hora para script o variable de shell de Linux

Copie y sobrescriba un archivo en el script de Shell

Exportar una variable desde bash y usarla en Python