我在一个有很多遗留 shell 脚本魔法的环境中工作。在命令行中大量使用的一件事是 bash 函数,这些函数来自某个文件中包含的某个文件,这些文件包含在某个文件中……包含在我的 .bash_profile 中。有没有办法在不通过 5 个级别的包含跟踪它们的情况下获得这些函数的定义甚至更好的定义位置?
Hai*_*Dog 72
假设您有一个名为 foo 的函数,下面的命令将获取该函数定义的位置,即它将获取定义该函数的文件的名称以及该函数在该文件中定义的行号.
# Turn on extended shell debugging
shopt -s extdebug
# Dump the function's name, line number and fully qualified source file
declare -F foo
# Turn off extended shell debugging
shopt -u extdebug
Run Code Online (Sandbox Code Playgroud)
在我的情况下,这些命令的输出是:
foo 32 /source/private/main/developer/cue.pub.sh
Run Code Online (Sandbox Code Playgroud)
Jos*_*erg 12
要查看函数的定义(而不是它的来源),请使用:
declare -f <functionname>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11605 次 |
| 最近记录: |