J'ai un script shell où le nom de la fonction et ses paramètres sont stockés dans des variables. Je ne sais pas comment l'appeler. J'ai essayé avec eval et sans, mais rien ne fonctionne correctement.
exemple de mon code :
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
}
Lorsque la fonction elle-même n'est pas une variable, le script fonctionne correctement.
Testfunc1 "$VarName" "$VarLastname" "$VarText"
Mais je veux appeler une fonction dynamiquement.
Comment puis-je faire cela ?
Merci et salutations
Danloc
Réponse acceptée :
C'est à peu près là où vous mettez la définition de la fonction. Si vous déclarez la fonction avant qu'elle ne soit appelée, vous pouvez l'appeler même par variable. Essayez ceci :
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"