스크립트에서 호출된 함수 이름을 확인하는 방법

스크립트에서 호출된 함수 이름을 확인하는 방법

즉, 다음을 수행합니다.

-bash$ function tt
{
 echo $0;
}

-bash$ tt

$0가 반환될 것입니다 -bash. 하지만 호출된 함수 이름( tt이 경우 함수 이름)을 어떻게 알 수 있나요?

답변1

bash사용 중기능 이름대량:

tt() {
  printf '%s\n' "$FUNCNAME"
}

일부 ksh구현에서는 다음과 같습니다.

tt() { printf '%s\n' "$0"; }

존재하다 ksh93:

tt() { printf '%s\n' "${.sh.fun}"; }

위에서 함수 내부를 ksh93d사용하여 함수 이름을 가져올 수도 있지만 함수를 정의하려면 양식을 $0사용해야 합니다 .function name { ...; }


에서는 배열을 zsh사용할 수 있습니다 funcstack.

tt() { print -rl -- $funcstack[1]; }

또는 $0내부 기능.


존재하다 fish:

function tt
  printf '%s\n' "$_"
end

답변2

bash에서는 ${FUNCNAME[0]}.

답변3

function tt { echo ${FUNCNAME}; }

내 CentOS 6 컴퓨터에서 이것을 실행합니다.

관련 정보