GNU/Linux >> Tutoriales Linux >  >> Linux

Typeset -a ¿Está dando un error en el script?

Estaba usando matrices asociativas en mi secuencia de comandos, por lo tanto, solía declararlas por

typeset -A <array_name> comando, y funcionó bien en el indicador de bash

Pero cuando lo uso en mi secuencia de comandos, aparece el siguiente error

typeset: -A: invalid option
typeset: usage: typeset [-afFirtx] [-p] name[=value] ...

Una solución alternativa también será aceptable para mí.

NOTA AL MARGEN:Probé typeset -a pero declara una matriz indexada. Pero quiero una matriz asociativa.

Respuesta aceptada:

Ese es el error generado por Bash 3 para typeset -A . Las matrices asociativas se agregaron en Bash 4 y no están en Bash 3.2 y versiones anteriores.

Parece que su secuencia de comandos se está ejecutando con una versión diferente de Bash que la que está utilizando como shell. Si está en la misma máquina en ambos casos, tiene varias versiones instaladas y probablemente pueda seleccionar una con una ruta diferente. Si está en una máquina diferente ejecutando el script, es posible que pueda instalar una versión más nueva, pero de lo contrario no tendrá suerte para obtener soporte directo en Bash.

zsh admite matrices asociativas desde versiones mucho más antiguas, por lo que si tiene eso disponible, es probable que pueda portar su secuencia de comandos sin demasiado trabajo. Si no puede hacer eso, puede falsificarlo con arreglos regulares y grep , o usando ${[email protected]} y un conjunto de variables ordinarias, que está disponible en versiones anteriores de Bash. ${[email protected]} se expande a los nombres de todas las variables cuyos nombres comienzan con prefix , que puede usar en combinación con varias variables prefix_key1 , prefix_another para obtener la mayoría de los comportamientos de las matrices asociativas.


Linux
  1. Manejo de errores en scripts Bash

  2. ¿Se puede conectar un script Bash a un archivo?

  3. Error de secuencia de comandos Bash:¿Se esperaba una expresión entera?

  4. Cómo dividir una cadena en Bash Script

  5. Bash Script - Ejemplo de Hola mundo

35 ejemplos de secuencias de comandos Bash

Aprenda el manejo de errores de Bash con el ejemplo

Cómo ejecutar un script Bash

Script bash de Linux para extraer la dirección IP

Generar error en un script Bash

Coincidencia de patrón de secuencia de comandos Bash