関数名とそのパラメーターが変数に格納されているシェルスクリプトを取得しました。私はそれを呼び出す方法がわかりません。 evalありとなしで試してみましたが、何も正しく動作しません。
私のコードの例:
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
}
関数自体が変数でない場合、スクリプトは正常に動作します。
Testfunc1 "$VarName" "$VarLastname" "$VarText"
しかし、関数を動的に呼び出したいです。
どうやってやるの?
感謝と挨拶
ダンロック
これは、関数定義を配置する場所です。呼び出される前に関数を宣言すると、変数によっても呼び出すことができます。これを試して:
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"
最初に関数を定義します。正常に動作します。私が理解しているのはシェルです。呼び出される前に、まず関数を定義する必要があります。
#!/usr/bin/bash
Testfunc1() {
Name=$1
LastName=$2
Text=$3
echo $Name
echo $Lastname
echo $Text
}
VarFunction="Testfunc1"
VarName="Peter"
VarLastname="Lustig"
VarText="Is a really lucky guy!\n Maybe he knows some funny Stuff?"
${VarFunction} "$VarName" "$VarLastname" "$VarText"