2010-12-09 9 views
5

Tengo un script que necesita usar matrices asociativas. Como soy nuevo en ksh, no puedo encontrar en ningún sitio que ksh admita matrices asociativas. Cuando trato de utilizar la sintaxis y la asignación de arreglos regulares, me sale un error de que el índice no puede ser tan grande. ¿Ksh admite matrices asociativas? Si no, ¿cuál es la solución alternativa?ksh array asociado

necesita hacer lo siguiente: $ {matriz [$ nombre]} = valor y más tarde en el código, necesito leer el valor de $ {matriz [$ nombre]}. Tengo aproximadamente 2000 valores para almacenar y leer de la matriz cada vez que se ejecuta una secuencia de comandos.

Desafortunadamente, no puedo usar Perl debido a la extensión de los módulos heredados que se incluirán en el script. Apreciar cualquier ayuda, consejos o técnicas.

Respuesta

8

El comando ksh typeset se utiliza para declarar una matriz asociativa.

$ typeset -A age 
$ age[bob]=42 
$ age[alice]=31 
$ print ${age[bob]} 
42 
+1

Hola, lo he intentado y me sale el siguiente error: $ ./test.sh paramPassed: ./test.sh 0 ./test.sh[6]: tipografía: 0403- 010 Una bandera especificada no es válida para este comando. Me estoy ejecutando en AIX6.1 – Kiran

+0

y el código en la línea 6: tipografiar -A testArray – Kiran

+3

@Kiran: Intente cambiar su shebang a 'ksh93' en lugar de' ksh'. –