$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

最新文章

  1. 处理xml c#
  2. poj 3321:Apple Tree(树状数组,提高题)
  3. mariadb的explain分析及InnoDB存储引擎
  4. iOS 深拷贝和浅拷贝
  5. Java 文件操作大全
  6. stl_各容器的总结
  7. 学编程担心自己英语不好吗?(IT软件开发常用英语词汇)
  8. 使用Myeclipse10.0自动生成搭建SSH框架(数据库表自动反向转换成Hibernate实体)实现用户登陆
  9. linux下JAVA开发的环境配置
  10. python学习第九讲,python中的数据类型,字符串的使用与介绍
  11. js判断手机端
  12. Android中获取文件路径的方法总结及对照
  13. idea 集成sonarLint检查代码bugs
  14. 解决Android Studio出现GC overhead limit exceeded
  15. blfs(systemd版本)学习笔记-前几章节的脚本配置
  16. Codeforces960G Bandit Blues 【斯特林数】【FFT】
  17. laravel框架目录结构详解
  18. Hello 2019 自闭记
  19. 以后的博客将更新到自己的域名pythonsite.com,欢迎访问
  20. [Bayesian] “我是bayesian我怕谁”系列 - Naive Bayes with Prior

热门文章

  1. [自学AndroidStudio系列]第二篇章:高速上手AS小技巧其一
  2. sql server中的TimeStamp时间戳与UniqueIdentifier数据类型
  3. Maven项目中读取src/main/resources目录下的配置文件
  4. 浏览器加载js文件顺序
  5. JS高级程序设计拾遗
  6. jQuery怎么选择两个class属性
  7. Application与Context关联
  8. Modbus TCP 示例报文
  9. QWidget之Alien与Native小记(果然是DirectUI的方式,QWidget居然提供了nativeParentWidget函数,而且可以动态设置native父窗口)good
  10. mysql中常见的存储引擎和索引类型