ksh에서 현재 함수와 다른 함수의 하위 함수를 호출하는 방법은 무엇입니까?

ksh에서 현재 함수와 다른 함수의 하위 함수를 호출하는 방법은 무엇입니까?

이 경우 에서 func1전화가 옵니다 Main_Func. 그것을 뭐라고 부르나요?

Main_Func() {
<code>

}
Initialize_func() {

  func1() {

  <code>

  }

}

답변1

func1정의를 얻으 려면 먼저 Initialize_func해당 정의를 한 번 이상 호출해야 합니다. 그런 다음 func1다음과 같이 호출할 수 있습니다 func1.

예:

outer1 () {
    echo 'in outer1'
    inner
}

outer2 () {
    echo 'in outer2'

    inner () {
        echo 'in inner'
    }
}

# First example explained below:
outer1

# Second example explained below:
outer2
outer1

outer1이 예에서는 호출하지 않고 호출하는 것이 정의되지 않았기 outer2때문에 작동하지 않습니다 .inner

$ ksh93 script.sh
in outer1
script.sh[3]: inner: not found [No such file or directory]

먼저 전화 outer2한 후 outer1작업하세요.

$ ksh93 script.sh
in outer2
in outer1
in inner

kshfunc1귀하의 기능을 다른 기능과 동일한 "범위"에 배치합니다 . C++이나 다른 객체 지향 언어가 어떻게 func1Initialize_func.

function이는 위에 설명된 Bourne 쉘 함수 구문을 사용하는지 또는 Korn 쉘의 키워드를 사용하여 함수를 정의하는지 여부와 관계가 없습니다.

관련 정보