Bash 获取当前函数名
来源:互联网 发布:vb释放资源文件 编辑:程序博客网 时间:2024/05/22 09:02
原文地址:http://kodango.com/get-function-name-in-bash
##########################################################################################################################
在C/C++中,__FUNCTION__常量记录当前函数的名称。有时候,在日志输出的时候包含这些信息是非常有用的。而在Bash中,同样有这样一个常量FUNCNAME,但是有一点区别是,它是一个数组而非字符串,其中数组的第一个元素为当前函数的名称。
可能初看有点难以理解,为什么FUNCNAME要是一个数组呢?看看下面的例子,你就明白了。
#!/bin/bashfunction test_func(){ echo "Current $FUNCNAME, \$FUNCNAME => (${FUNCNAME[@]})" another_func echo "Current $FUNCNAME, \$FUNCNAME => (${FUNCNAME[@]})"}function another_func(){ echo "Current $FUNCNAME, \$FUNCNAME => (${FUNCNAME[@]})"}echo "Out of function, \$FUNCNAME => (${FUNCNAME[@]})"test_funcecho "Out of function, \$FUNCNAME => (${FUNCNAME[@]})"
执行后的结果为:
Out of function, $FUNCNAME => ()Current test_func, $FUNCNAME => (test_func main)Current another_func, $FUNCNAME => (another_func test_func main)Current test_func, $FUNCNAME => (test_func main)Out of function, $FUNCNAME => ()
所以,更加准确地说,FUNCNAME是一个数组,但是bash中会将它维护成类似一个堆栈的形式。
与FUNCNAME相似的另外一个比较有用的常量是BASH_SOURCE,同样是一个数组,不过它的第一个元素是当前脚本的名称。
这在source的时候非常有用,因为在被source的脚本中,$0是父脚本的名称,而不是被source的脚本名称。而BASH_SOURCE
就可以派上用场了。
# If the script is sourced by another scriptif [ -n "$BASH_SOURCE" -a "$BASH_SOURCE" != "$0" ]then do_somethingelse # Otherwise, run directly in the shell do_otherfi
唯一遗憾的是,这种做法会让脚本失去一些可移植性,因为不是所有的shell都支持这些常量。
0 0
- Bash 获取当前函数名
- java 获取当前函数名
- andriod 获取当前函数名
- linux bash 脚本获取git当前的分支名
- PHP获取当前类名、函数名、方法名
- thinkphp 获取当前的方法名,类名,函数名
- Java中获取当前函数名
- python 获取当前行号 函数名 文件名
- python 获取当前函数名和行号
- shell 脚步获取当前的函数名
- ci获取当前控制器类名和方法名和PHP获取当前类名、函数名、方法名方法
- php获取当前类名函数名的方法
- php获取当前类名函数名的方法
- php获取/检查当前类名函数名的方法
- php获取当前类名函数名的方法
- Java 在函数中获取当前函数的函数名
- JAVA 获取当前的函数名,当前运行的类名
- JAVA 获取当前执行的函数名、当前运行的类名等等信息
- Project第一天
- MES程序安装
- iostat 一些参数分析
- ActionBar出现黑边的解决方案
- linux下添加用户并赋予root权限
- Bash 获取当前函数名
- 计算π的近似值
- log4j学习笔记--ConversionPattern参数详解-- RollingFileAppender选项
- 带有标题头的listview
- Android常见命令
- Ext miscellany 整理
- #ubuntu# ubuntu 下安装 phpstorm
- Android应用程序 Android制作简单单页导航
- CDISC SDTM HO domain学习笔记