${FUNCNAME[@]}和$LINENO使用
2024-09-08 10:31:53
$LINENO
代表shell脚本的当前行号
[root@mysql-B ~]# cat test1.sh
#!/bin/bash
trap 'echo “before execute line:$LINENO, a=$a,b=$b,c=$c”' DEBUG
a=
if [ "$a" -eq ]
then
b=
else
b=
fi
c=
echo "end" [root@mysql-B ~]# ./test1.sh
“before execute line:, a=,b=,c=”
“before execute line:, a=,b=,c=”
“before execute line:, a=,b=,c=”
“before execute line:, a=,b=,c=”
“before execute line:, a=,b=,c=”
end
$FUNCNAME
表示函数的名字,它是一个数组变量,其中包含了整个调用链上所有的函数的名字,故变量${FUNCNAME[0]}代表shell脚本当前正在执行的函数的名字,而变量${FUNCNAME[1]}则代表调用函数${FUNCNAME[0]}的函数的名字,依此类推。
[root@mysql-B ~]# cat test1.sh
#!/bin/bash test1() {
echo "aaa"
local a=${FUNCNAME[@]}
echo $a
} test2() {
test1
}
test2 [root@mysql-B ~]# ./test1.sh
aaa
test1 test2 main #输出结果为一个数组,第一个是被调用的函数名称,第二个是调用的函数名称,
想只输出被调用的函数名称时,把@替换成0,想输入调用函数的名称时,@替换成1
最新文章
- 处理xml c#
- poj 3321:Apple Tree(树状数组,提高题)
- mariadb的explain分析及InnoDB存储引擎
- iOS 深拷贝和浅拷贝
- Java 文件操作大全
- stl_各容器的总结
- 学编程担心自己英语不好吗?(IT软件开发常用英语词汇)
- 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
- linux下JAVA开发的环境配置
- python学习第九讲,python中的数据类型,字符串的使用与介绍
- js判断手机端
- Android中获取文件路径的方法总结及对照
- idea 集成sonarLint检查代码bugs
- 解决Android Studio出现GC overhead limit exceeded
- blfs(systemd版本)学习笔记-前几章节的脚本配置
- Codeforces960G Bandit Blues 【斯特林数】【FFT】
- laravel框架目录结构详解
- Hello 2019 自闭记
- 以后的博客将更新到自己的域名pythonsite.com,欢迎访问
- [Bayesian] “我是bayesian我怕谁”系列 - Naive Bayes with Prior
热门文章
- [自学AndroidStudio系列]第二篇章:高速上手AS小技巧其一
- sql server中的TimeStamp时间戳与UniqueIdentifier数据类型
- Maven项目中读取src/main/resources目录下的配置文件
- 浏览器加载js文件顺序
- JS高级程序设计拾遗
- jQuery怎么选择两个class属性
- Application与Context关联
- Modbus TCP 示例报文
- QWidget之Alien与Native小记(果然是DirectUI的方式,QWidget居然提供了nativeParentWidget函数,而且可以动态设置native父窗口)good
- mysql中常见的存储引擎和索引类型