함수 이름과 인수가 변수에 저장되는 쉘 스크립트가 있습니다. 나는 그것을 무엇이라고 불러야할지 모르겠습니다. 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"
하지만 동적으로 함수를 호출하고 싶습니다.
어떻게 해야 하나요?
감사와 안부
댄 로크
답변1
함수 정의를 어디에 넣을지에 관한 것입니다. 함수를 호출하기 전에 선언하면 변수를 통해 호출할 수도 있습니다. 이 시도:
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"
답변2
처음에 함수를 정의하십시오. 좋은 결과. 제가 이해한 바에 따르면 셸에서 먼저 함수를 정의한 다음 호출해야 합니다.
#!/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"