ho uno script di shell in cui il nome della funzione e i suoi parametri sono archiviati in variabili. non so come chiamarlo. L'ho provato con eval e senza, ma niente funziona correttamente.
esempio del mio codice:
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
}
Quando la funzione stessa non è una variabile, lo script funziona correttamente.
Testfunc1 "$VarName" "$VarLastname" "$VarText"
Ma voglio chiamare una funzione in modo dinamico.
Come posso farlo?
Grazie e saluti
Danloc
Risposta accettata:
Si tratta di dove metti la definizione della funzione. Se dichiari la funzione prima che venga chiamata, puoi chiamarla anche per variabile. Prova questo:
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"