즉, 다음을 수행합니다.
-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 컴퓨터에서 이것을 실행합니다.