Bash는 현재 함수 이름을 인쇄할 수 있습니다:
$ bash -c 'g(){ echo $FUNCNAME; }; g'
g
단, Dash는 사용할 수 없습니다.기능 이름:
$ dash -c 'g(){ echo $FUNCNAME; }; g'
Dash를 사용하여 현재 함수 이름에 액세스할 수 있나요?
답변1
POSIX 셸의 경우:
defun() {
eval "
$1() {
FUNCNAME=$1
$(cat)
}
"
}
defun g <<\}
printf '%s\n' "$FUNCNAME"
}
g
defun
정의된 함수 내부에 정의된 함수를 호출할 수 없다는 점에 유의하세요 defun
.