![ksh에서 현재 함수와 다른 함수의 하위 함수를 호출하는 방법은 무엇입니까?](https://linux55.com/image/125437/ksh%EC%97%90%EC%84%9C%20%ED%98%84%EC%9E%AC%20%ED%95%A8%EC%88%98%EC%99%80%20%EB%8B%A4%EB%A5%B8%20%ED%95%A8%EC%88%98%EC%9D%98%20%ED%95%98%EC%9C%84%20%ED%95%A8%EC%88%98%EB%A5%BC%20%ED%98%B8%EC%B6%9C%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 경우 에서 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
ksh
func1
귀하의 기능을 다른 기능과 동일한 "범위"에 배치합니다 . C++이나 다른 객체 지향 언어가 어떻게 func1
든 Initialize_func
.
function
이는 위에 설명된 Bourne 쉘 함수 구문을 사용하는지 또는 Korn 쉘의 키워드를 사용하여 함수를 정의하는지 여부와 관계가 없습니다.