Bash FUNCNAME은 Dash와 동일합니다.

Bash FUNCNAME은 Dash와 동일합니다.

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.

관련 정보