Obtuve un script de shell donde el nombre de la función y sus parámetros se almacenan en variables. no se como llamarlo Lo probé con eval y sin, pero nada funciona correctamente.
ejemplo de mi código:
VarFunction="Testfunc1"
VarName="Peter"
VarLastname="Lustig"
VarText="Is a really lucky guy!n Maybe he knows some funny Stuff?"
eval ${VarFunction} "$VarName" "$VarLastname" "$VarText"
Testfunc1() {
Name=$1
LastName=$2
Text=$3
echo $Name
echo $Lastname
echo $Text
}
Cuando la función en sí no es una variable, el script funciona bien.
Testfunc1 "$VarName" "$VarLastname" "$VarText"
Pero quiero llamar a una función dinámicamente.
¿Cómo puedo hacer eso?
Gracias y saludos
Danloc
Respuesta aceptada:
Aquí se trata de dónde pones la definición de la función. Si declara la función antes de que se llame, puede llamarla incluso por variable. Prueba esto:
VarFunction="Testfunc1"
VarName="Peter"
VarLastname="Lustig"
VarText="Is a really lucky guy!n Maybe he knows some funny Stuff?"
Testfunc1() {
Name=$1
LastName=$2
Text=$3
echo $Name
echo $Lastname
echo $Text
}
${VarFunction} "$VarName" "$VarLastname" "$VarText"