함수와 매개변수를 변수로 사용하는 쉘 스크립트

함수와 매개변수를 변수로 사용하는 쉘 스크립트

함수 이름과 인수가 변수에 저장되는 쉘 스크립트가 있습니다. 나는 그것을 무엇이라고 불러야할지 모르겠습니다. 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"

관련 정보