在 zsh 中获取调用函数的名称 [英] Get name of calling function in zsh
本文介绍了在 zsh 中获取调用函数的名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在某个时候在 shell 脚本中获取函数调用者名称,在 bash 中它与 ${FUNCNAME[1]}
I want to get function caller name in shell script sometime, in bash it works with ${FUNCNAME[1]}
${FUNCNAME[1]}
是(来电者姓名)
${FUNCNAME[0]}
是 c(当前名称)
但它在 zsh 中不起作用
but it not work in zsh
即我想知道在函数 c 中哪个函数调用了我
ie i want to know which function call me in function c
function a(){
c
}
function b(){
c
}
function c(){
#if a call me; then...
#if b call me; then...
}
推荐答案
函数调用栈在变量$funcstack[]
中.
$ f(){echo $funcstack[1];}
$ f
f
所以在 c
中调用函数(a
或 b
)是 $funcstack[2]
或者也许更方便$funcstack[-1]
.
So in c
the calling function (a
or b
) is $funcstack[2]
or perhaps more conveniently $funcstack[-1]
.
这篇关于在 zsh 中获取调用函数的名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文