获取 KornShell 脚本中的函数名称
我想从函数内部获取函数名称,以用于记录目的。
KornShell (ksh) 函数:
foo ()
{
echo "get_function_name some useful output"
}
是否有类似于 $0
的函数,它返回脚本内的脚本名称,但提供函数名称?
I'd like to get the function name from within the function, for logging purposes.
KornShell (ksh) function:
foo ()
{
echo "get_function_name some useful output"
}
Is there anything similar to $0
, which returns the script name within scripts, but which instead provides a function's name?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果使用
function
关键字定义函数,则$0
是函数名称:(在 pdksh 中测试。)
If you define the function with the
function
keyword, then$0
is the function name:(Tested in pdksh.)
主要优点是函数内部的“typeset myvar=abc”现在是一个局部变量,在函数外部不会产生任何副作用。这使得 KSH 对于大型 shell 脚本来说明显更安全。主要的缺点也许是非 POSIX 语法。
Main pro is that "typeset myvar=abc" inside the function is now a local variable, with no possible side effects outside the function. This makes KSH noticeably safer for large shell scripts. Main con is, perhaps, the non-POSIX syntax.
使用 ksh“function foo ...”形式:
Use the ksh "function foo ..." form:
下面的函数似乎在 Bash 和 ksh 中都有它的名字:
The function below seems to get its name in both Bash and ksh: