GNU/Linux >> Tutoriales Linux >  >> Linux

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

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"

Linux
  1. Ejecutar secuencia de comandos con ". ¿Y con “fuente”?

  2. ¿Qué significa `:-` en un script de Shell?

  3. ¿Comportamiento inesperado de un script de Shell?

  4. Edite el script de shell mientras se está ejecutando

  5. Bash Shell Script:busque una bandera y tome su valor

Cómo usar variables en secuencias de comandos de Shell

¿Es posible una secuencia de comandos mixta de shell y python?

Biblioteca de salida de scripts de shell de colores

Alcance variable para scripts y funciones bash shell en el script

Aclaración sobre el comportamiento del script de shell junto con la tubería

¿Plantillas con Linux en un script de Shell?