2011-12-08 5 views

Respuesta

16

Usted puede hacer indirecto variables con matrices como este :

subst="$f[@]" 
echo "${!subst}" 

Como soulmerge notas, no se debe utilizar para este #!/bin/sh. Uso #!/usr/bin/env bash como mi shebang, que debería funcionar independientemente de dónde se encuentre Bash en su camino.

+0

¡Esto funcionó maravillosamente! ¡Gracias! – Andy

+4

+1 La expansión indirecta es mucho menos un imán de errores que 'eval'. –

5

Se podría eval la línea deseada:

eval "echo \${${f}[@]}" 

BTW: Su primera línea debe ser #!/bin/bash, que está utilizando cosas-fiesta específica como matrices

+0

+1 si me quedan votos hoy. ¿Puedes explicar lo que evalúa? – jman

+0

eval solo evalúa la cadena de parámetros como un comando. – Andy

+1

No entiendo por qué las personas siguen bajando votos sin dar ningún comentario? – soulmerge

Cuestiones relacionadas