Ich habe ein Shell-Skript, in dem der Funktionsname und seine Parameter in Variablen gespeichert sind. Ich weiß nicht, wie ich es nennen soll. Ich habe es mit eval und ohne versucht, aber nichts funktioniert richtig.
Beispiel für meinen 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
}
Wenn die Funktion selbst keine Variable ist, funktioniert das Skript einwandfrei.
Testfunc1 "$VarName" "$VarLastname" "$VarText"
Aber ich möchte eine Funktion dynamisch aufrufen.
Wie kann ich das tun?
Danke und Grüße
Danloc
Akzeptierte Antwort:
Hier geht es darum, wo Sie die Funktionsdefinition ablegen. Wenn Sie die Funktion deklarieren, bevor sie aufgerufen wird, können Sie sie sogar per Variable aufrufen. Versuchen Sie Folgendes:
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"